6

我想是新手问题。

以下代码是我在准备好文档时调用的函数的一部分。它旨在在鼠标移动时永久返回当前鼠标位置的值。

正在发生的奇怪事情:在准备好的文档上移动鼠标不会将任何内容记录到控制台。我知道 mouse_monitor-function 可以工作,因为我在另一个“mousedown”-eventlistener 中使用了这个函数,然后它将当前鼠标位置记录到控制台。

//Mouse Monitor

    canvas.addEventListener('mousemove', mouse_monitor, false);


//Mouse Monitor Request
    var mouse = new Array();
    var mouse_monitor = function(e) {
        var canvasOffset=$("#canvas").offset();
        var offsetX=canvasOffset.left;
        var offsetY=canvasOffset.top;
        mouse.x = e.pageX - offsetX;
        mouse.y = e.pageY - offsetY;
        return mouse;
        console.log(mouse);
    }
4

1 回答 1

6
return mouse;

该行之后的任何语句都不会被执行。

好的,然后开始工作并逐步添加/修改它:

var mouse_monitor = function(e) {
  var x = e.pageX;
  var y = e.pageY;
  console.log(x, y);
}

window.onload = function() {
  this.addEventListener('mousemove', mouse_monitor);
}

但是您提到了“文档就绪”,因此如果您使用的是 jquery,则应避免使用 addEventListener() 因为它不是跨浏览器:

var mouse_monitor = function(e) {
  var x = e.pageX;
  var y = e.pageY;
  console.log(x, y);
}

$(document).ready( function() {
  $(this).on('mousemove', mouse_monitor);
});

另一种方法是 console.log() 导致失败代码的所有变量及其值,以确定哪些值不是它们应有的值。

于 2013-06-08T11:53:52.697 回答