2011-09-20 287 views
0

如果我有上清空鍵盤緩衝區

$('#div').keydown(function(event) { .... 

,如果響應用戶在大多數這些電話的壓在熱像一個瘋狂的兔子的關鍵千倍一個非常短的時間內,瀏覽器響應的元素。

我可以以某種方式防止通過沖洗鍵盤緩衝區?

+0

你究竟想要防止什麼?快速打字?您可以簡單地選擇忽略在前一個鍵的N ms以內的擊鍵。 – jfriend00

+0

只要確保你不會阻止實際打字的人。 :) – epascarello

回答

2

您可以結帳following blog post,它說明如何減少函數調用並平息瘋狂的兔子。

+0

你從哪裏得到這些東西?...這是個好人! – Agzam

+0

@Agzam,這只是我的經歷已經經歷了所有這些。 –

+0

你還記得嗎?我甚至不記得我早餐吃什麼。 :)感謝哥們... – Agzam

2

這是一個處理過多的keydown調用的簡單方法。

var timeout = false; //I'd recommend defining this variable within a local scope 

$('#div').keydown(function(event) { 
    if(timeout) return; 
    timeout = true; 
    setTimeout(function(){timeout=false}, 100); 
    //Change 100 to something more appropriate 

    //Rest of function 
} 
+1

我不知道你想在這段代碼中做什麼,但是一旦按下第一個鍵,變量'timeout'就不會在其中產生錯誤的值。 – jfriend00

+0

我認爲在設置超時之前'timeout = true'語句是多餘的;你立即覆蓋它。 – pimvdb

+0

@pimvdb你看過這個問題嗎?當用戶擁有令人難以置信的快速打字能力時,這種添加只會顯示出生命的跡象。 –