jQuery mousemove () вызывается, даже если мышь все еще - PullRequest
11 голосов
/ 02 января 2011

Для меня, если я попробую этот пример: http://jsfiddle.net/bY3CC/3/ текст "мышь перемещен" появляется, даже если я наведу курсор мыши на документ и затем позволю ему все еще ...

тот?; \

А также, похоже, что сообщение появляется только в Chrome ....

Странно: -s

Ответы [ 2 ]

11 голосов
/ 26 февраля 2013

Сохранить координаты 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/>');
    };
})());
4 голосов
/ 02 января 2011

Глобальный 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 /

...