我想减少事件执行时间的数量 所以我写了这样的话:
var slow=function(method,context){
method.id&&clearTimeout(method.id)
method.id = setTimeout(function(){
method.apply(context,arguments)
}, 500)
}
window.onload=function(){
function print(){ console.log("thanks a lot") }
document.body.addEventListener("mousemove",function(){
slow(print)
}, false)
}
如果我身体移动得太快, print 功能将不会立即执行,但它似乎不起作用 有人可以帮忙吗?非常感谢!
答案 0 :(得分:0)
初看起来,你还没有在慢速
的调用中提供了context参数答案 1 :(得分:0)
我建议使用Ben Alman的油门/去抖动插件。它根本不需要jQuery。如果页面上没有jQuery,它只会将自己添加到Cowboy
命名空间。
https://github.com/cowboy/jquery-throttle-debounce/blob/master/jquery.ba-throttle-debounce.js
否则,你至少可以从这里的代码中了解他是如何做到这一点的。