2011-09-02 61 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