能够无限制的触发事件,是件很危险的事情。
为了解决这个问题,其中一个解决方案就是 防抖。
单纯的点击触发事件代码如下
<body>
<button id="demo">按我</button>
</body>
<script>
function handle(){
console.log('触发');
}
// 绑定点击事件
var r = document.getElementById('demo');
r.addEventListener('click', handle); //注意这里handle函数是不加括号的,加括号为函数的返回结果
</script>
能够无限制的触发着实令人不太舒服哩。
防抖版代码如下:
<body>
<button id="demo">按我</button>
</body>
<script>
//触发函数
function handle(){
console.log('触发');
}
//防抖函数
function debounce() {
var t = null;
return function(){
if(t !== null) clearTimeout(t); //不断点击不断触发,不断取消定时操作
t = setTimeout(handle, 300);
}
}
// 点击事件
var r = document.getElementById('demo');
r.addEventListener('click', debounce()); // 触发的为return的函数~~
</script>
现在这样就可以啦~