jQuery mouseMove () называется даже если мышь все еще
-
14-10-2019 - |
Вопрос
Для меня, если я попробую этот пример: http://jsfiddle.net/by3cc/3/ Появится текст «мыши перемещенного», даже если я перемещаю свою мышь к документу, а затем я позволю ему все еще ...
Почему это? ;
А также кажется, что сообщение появляется только в Chrome ....
Странно: -s
Решение
Глобальный 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;
}
});
Другие советы
Хранить 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/>');
};
})());
Не связан с StackOverflow