addEventListener mousemove on document ready

时间:2013-06-08 11:44:43

标签: addeventlistener mousemove document-ready

我想是新手问题。

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

发生了奇怪的事情:将鼠标移到文档就绪状态不会将任何内容记录到控制台。我知道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);
    }

1 个答案:

答案 0 :(得分:2)

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()所有变量及其值导致失败的代码,以确定哪些值不是应该的。