日期:2014-05-16 浏览次数:20360 次
/* 创建对象 var task = new Ext.util.DelayedTask(function(){ alert(Ext.getDom('myInputField').value.length); }); 调用执行 Ext.get('myInputField').on('keypress', function(){ task.{@link #delay}(500); }); */ Ext.util.DelayedTask = function(fn, scope, args){ var me = this, id, call = function(){ clearInterval(id);//这里感觉这里有点多余, me.cancel已经有做这个动作,是不是重复了,不知道作者处于何意 id = null; fn.apply(scope, args || []); }; //设置delay 参数信息 me.delay = function(delay, newFn, newScope, newArgs){ me.cancel();//先清楚当前对象的定期器 fn = newFn || fn;//设置调用函数 scope = newScope || scope;//调用函数的作用域 args = newArgs || args;//调用函数的参数 id = setInterval(call, delay);//运行函数 }; //清楚定时器 me.cancel = function(){ if(id){ clearInterval(id); id = null; } }; }; //这个函数用在对输入校验的时候特别管用,特别是对于suggest这样的应用,可以减少服务端压力,