вместо таймаутов?
аюсь найти чистый способ агрегирования событий перемещения мыши, чтобы гарантировать, что мой код вызывается, но только один раз каждые 250-300 миллисекунд.
Я думал об использовании чего-то подобного следующему, но мне было интересно, есть ли лучший шаблон или что-то, что предоставляет jQuery, который будет делать то же самое:
var mousemove_timeout = null;
$('body').mousemove(function() {
if (mousemove_timeout == null) {
mousemove_timeout = window.setTimeout(myFunction, 250);
}
});
function myFunction() {
/*
* Run my code...
*/
mousemove_timeout = null;
}
РЕДАКТИРОВАТЬ: Принятый ответ, приведенный ниже, отлично подойдет для этой ситуации, однако я обнаружил, чтоmousestop()
функциональность, представленная в ответе, фактически устранила мою потребность в агрегировании, поэтому, если вы читаете этот вопрос и ищете ответ, посмотрите,mousestop плагин это то, что вам действительно нужно!