我试图找出一种干净的方法来聚合 mousemove 事件,以确保我的代码被调用,但每 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插件是你真正需要的!