<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input type="" name="">
</body>
<script type="text/javascript">
// 当我们不想 input 每次都触发。 而是 当判断input 在最后一次 的时候在触发;
var inp = document.getElementsByTagName('input')[0];
inp.addEventListener('input',inp1(500));
function inp1(delay){
var time = null;
return function b(){
var that = this;
clearTimeout(time);
time = setTimeout(function(){
console.log(112233);
},delay)
}
}
1.函数防抖的要点,也是需要一个setTimeout
来辅助实现。延迟执行需要跑的代码。
2.如果方法多次触发,则把上次记录的延迟执行代码用clearTimeout
清掉,重新开始。
3.如果计时完毕,没有方法进来访问触发,则执行代码