$(input).live('keyup',function(e){ setTimeout(function(){ var xx = $(input).val(); doSearch(xx); },400); });
它等待400ms,然后执行每个键控.在最后输入一封信之后约400ms时,如何更改ajax调用仅“一次”?
(我过去使用’延迟’,但是根本不符合我的脚本…)
timer = 0; function mySearch (){ var xx = $(input).val(); doSearch(xx); } $(input).live('keyup',function(e){ if (timer) { clearTimeout(timer); } timer = setTimeout(mySearch,400); });
最好将你的函数移动到一个命名的函数并调用它多次,因为否则你正在每个keyup创建另一个lambda函数,这是不必要的,而且比较贵