找了一下午,发现防抖函数最符合我的需求。但是网上大多数都用不了,最后发现是因为绑定对象出错。监听变化时,绑定的对象必须是通过判断timer直接调用被防抖函数的函数。/** 用于防抖 */ var timer = null; function debounce(fn, wait) { if (timer != null) { clearTimeout(timer); } timer = setTimeout(fn, wait); } /** 需要防抖的函数 */ function test() { console.log('防抖成功!'); } /** 窗口变化做监听 */ window.addEventListener("resize", function(){ console.log('开始调用'); debounce(test,1000); });
找了一下午,发现防抖函数最符合我的需求。但是网上大多数都用不了,最后发现是因为绑定对象出错。监听变化时,绑定的对象必须是通过判断timer直接调用被防抖函数的函数。