我有
用户在打字时拨打电话.问题是它使每个字母都被打字的呼叫,所以我设置这样的超时时间:
$(input).live('keyup',function(e){
setTimeout(function(){
var xx = $(input).val();
doSearch(xx);
},400);
});
它等待400ms,然后执行每个键控.在最后输入一封信之后约400ms时,如何更改ajax调用仅“一次”?@H_403_5@
(我过去使用’延迟’,但是根本不符合我的脚本…)@H_403_5@
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函数,这是不必要的,而且比较贵@H_403_5@