Delay (Cheatsheet)
程序员文章站
2022-07-12 22:01:41
...
function Delay() { var timer = 0; return function(callback, ms, args, _this){ clearTimeout(timer); timer = setTimeout(function() { callback.apply(_this || this, args || []); // IE doesn't allow undefined args. }, ms); }; } var delay = Delay();
对于键盘等的事件处理很有帮助。在需要延迟处理的场合, 通常连续的事件都是同一个元素触发的, 提前绑定this因此显得有意义。但如果不同的触发元素(即不同的this)需要共享同一个timer, 那么只能将this参数下移到返回的function里去作为参数了。
function Delay() { var timer = 0; return function(callback, ms, args, _this){ clearTimeout(timer); timer = setTimeout(function() { callback.apply(_this || this, args || []); // IE doesn't allow undefined args. }, ms); }; }
上一篇: delay异步处理