JS 事件延迟执行说明分析
作者:
为了避免用户鼠标无意识划过,而触发事件。浪费客户端资源。
思路:当用户划过 设置变量i=0;
每过100毫秒 i++
当i==10的时候就刚好 是1秒。就触发事件。
否则用清楚setInterval i不在++;
哈哈。不知道我描述清楚没。
代码:
复制代码 代码如下:
var delay=function(t,fn){
var i=0,
j=10,
t=(t*1000)/j,
//把延迟时间平均分成10等份
_this=this,
//解决this绑定问题,所以调用delay函数的时候,请处理好this指向本身对象
d=setInterval(function(){
i++;
if(i==j){
clearInterval(d);
fn.apply(_this);
};
},t);
_this.onmouseout=function(){
clearInterval(d);
};
}
测试代码:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]