我有一个ajax方法可以触发keyup事件,但是我并不是真的希望它能够立即触发,每次用户按下一个键 - 理想情况下我希望延迟1-2秒去服务器,所以如果用户每隔1/2秒按一次键,当他们完成输入时(在没有输入任何内容的1-2秒之后),服务器只会有1次调用。
如何使用jQuery实现这一目标?
答案 0 :(得分:7)
var timer = null;
$("#element").keyup(function(){
clearTimeout(timer);
timer = setTimeout(function(){
//do your stuff
}, 2000);
});
答案 1 :(得分:0)
var to;
$("elm").bind("keyup",function(){
clearTimeout(to);
to = setTimeout(function(){$.post()}, 3000);
});