【问题标题】:why am i getting undefined when i use ".on" but a value when i use".click"为什么我在使用“.on”时会变得不确定,但在使用“.click”时会出现值
【发布时间】:2018-09-18 16:12:45
【问题描述】:

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

<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】:

    我实际上解决了这个问题.. evt.clientX 和 evt.clientY 需要更改为 evt.pageX 和 evt.pageY 然后我必须更改套接字消息中的输出。 奇怪的是,我从读到的内容中了解到,pointermove 应该对 clientX 和 clientY 有效。无论如何,它现在工作得非常好。

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 2022-10-23
      • 2022-09-23
      • 2023-03-14
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多