Ajax jQuery keyup事件需要在击键之间暂停

Ajax jQuery keyup事件需要在击键之间暂停,ajax,jquery,Ajax,Jquery,我有一个ajax方法可以触发keyup事件,但我真的不希望它在用户每次按键时立即触发-理想情况下,我希望在进入服务器之前有1-2秒的延迟,因此如果用户每1/2秒按键一次,当他们完成键入时,只会有一次对服务器的调用(在没有键入任何内容的1-2秒后) 我如何使用jQuery实现这一点?您从未将设置为实际超时。@rlemon您从未将setTimeout分配给'to'变量。最终结果是您的clearTimeout不起任何作用,因此您仍然会在每次按键启动时触发一次事件,仅延迟3秒。@Matt,谢谢我现在更正

我有一个ajax方法可以触发keyup事件,但我真的不希望它在用户每次按键时立即触发-理想情况下,我希望在进入服务器之前有1-2秒的延迟,因此如果用户每1/2秒按键一次,当他们完成键入时,只会有一次对服务器的调用(在没有键入任何内容的1-2秒后)


我如何使用jQuery实现这一点?

您从未将
设置为实际超时。@rlemon您从未将setTimeout分配给'to'变量。最终结果是您的clearTimeout不起任何作用,因此您仍然会在每次按键启动时触发一次事件,仅延迟3秒。@Matt,谢谢我现在更正了这一点。没有注意到,很明显是要放在那里的。
var timer = null;
$("#element").keyup(function(){
    clearTimeout(timer);
    timer = setTimeout(function(){
        //do your stuff
    }, 2000);
});
var to;
$("elm").bind("keyup",function(){
  clearTimeout(to);
  to = setTimeout(function(){$.post()}, 3000);
});