2011-09-02 56 views
1

我有一个ajax方法会触发keyup事件,但我并不想让它立即触发,每次用户按下一个键 - 理想情况下我想给在离开服务器之前需要1-2秒的延迟,所以如果用户每1/2秒钟按下一个键,当他们完成打字时(在不输入任何东西的1-2秒之后),服务器将只有1个呼叫。 。jQuery键盘事件需要在击键之间暂停

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

回答

6
var timer = null; 
$("#element").keyup(function(){ 
    clearTimeout(timer); 
    timer = setTimeout(function(){ 
     //do your stuff 
    }, 2000); 
}); 
+0

打我吧!呵呵。 – rlemon

+0

完美,谢谢! – marcusstarnes

0
var to; 
$("elm").bind("keyup",function(){ 
    clearTimeout(to); 
    to = setTimeout(function(){$.post()}, 3000); 
}); 
+0

这不起作用。 – genesis

+0

绑定不正确的选择? – rlemon

+0

您从未将'to'设置为实际超时。 – Chad