function debounce(func, delay) {
let timer;
// 通过闭包使timer一直存在内存中
return function (...args) {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
func.apply(this, args); //通过apply还原this指向事件
}, delay)
}
}
// 点击元素1秒后执行,如果1秒内重复点击会清空之前定时,重新生成定时器!
document.querySelector('.demo').addEventListener('click',debounce((e)=>{
// 需要执行的代码
console.log(e);
},1000),false);
js防抖函数
最新推荐文章于 2024-10-11 17:39:47 发布