当我使用“.on”时,为什么我得到了未定义,但当我使用“.click”时,这是一个值

问题描述 投票:1回答:1

当我将它发送到我的node.js服务器时,为什么我在下面的脚本中得到“evt.clientX”和“evt.clientY”的“undefined”:

<script>
socket.on('message', function(message) {
      
		})
		
		$('#myCanvas').on("pointermove", function(evt) {
			socket.emit('message', ("X: " + evt.clientX + " " + "Y: " + evt.clientY + " on a "+ evt.target.nodeName));
		})
		
</script>

然而,当我使用相同的脚本但将“.on”更改为“.click”时,它会在我的node.js服务器中正确打印出X和Y的坐标。下面是套接字消息引用的其余代码:

<script>
      function writeMessage(canvas, message) {
    var context = canvas.getContext('2d');
    context.clearRect(0, 0, canvas.width / 2, canvas.height / 2);
    context.font = '10pt Calibri';
    context.fillStyle = 'black';
    context.fillText(message, 10, 25);
  }
  function getMousePos(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    return {
      x: evt.clientX - rect.left,
      y: evt.clientY - rect.top

    };
  }

  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');

 canvas.addEventListener('pointermove', function(evt) {
    var x = evt.clientX;
    var y = evt.clientY;
    var mousePos = getMousePos(canvas, evt);
    var message = 'X: ' + mousePos.x + ' Y: ' + mousePos.y;
    writeMessage(canvas, message);
  }, false);

我认为这与我使用jquery有关?但我完全错了。任何帮助感激不尽!但是,求求您。如果可能,请保持简单说明。我对这一切都是一个新手!

非常感谢,

javascript jquery html socket.io
1个回答
0
投票

我实际上已经完成了这个.. evt.clientX和evt.clientY需要更改为evt.pageX和evt.pageY然后我不得不更改套接字消息中的输出。奇怪的是,据我所知,指针移动应该适用于clientX和clientY.Anyway它现在工作得非常好。

© www.soinside.com 2019 - 2024. All rights reserved.