即使鼠标静止,也会调用jQuery mousemove()

时间:2011-01-02 15:36:17

标签: jquery google-chrome mousemove

对我来说,如果我尝试这个例子:http://jsfiddle.net/bY3CC/3/即使我将鼠标移到文档上然后我让它仍然存在,“鼠标移动”文本也会出现...

为什么? ; \

此外,似乎该消息仅出现在Chrome中....

奇怪:-s

2 个答案:

答案 0 :(得分:11)

存储x,y坐标

$(document).mousemove((function(){
    var x,y;

    return function(evt){
        if(evt.clientX == x && evt.clientY == y){
            return;
        }
        x = evt.clientX;
        y = evt.clientY;
        $('#messages').append('mouse moved<br/>');
    };
})());

答案 1 :(得分:4)

全局event对象是非标准的,因此它仅存在于某些浏览器中,例如IE(可能仅在怪癖模式下)并且显然在Chrome中。

接受事件对象作为事件处理程序的参数:

var last_moved=0;
$(document).mousemove(function(e){
  var now = e.timeStamp;    
  if (now - last_moved > 1000) {
    $('#messages').append('mouse moved<br/>');
    last_moved = now;
  }
});

jsfiddle.net/bY3CC/5/