2013-05-09 45 views
2

如何檢測:按兩次相同的鍵,但第二次按住2秒鐘?如何檢測:按兩次相同的鍵,但第二次按住2秒鐘

我正在尋找一種有效的方法來檢測鍵碼37(左箭頭)(或任何其他鍵,如有必要)的keydown事件,然後釋放1.5秒或2秒後的相同鍵碼的第二keydown關鍵,在一個給定的延遲,如1秒。

這是要回去之間沒有混淆「回去,前一頁」(這是我想做的事情)和「這一項之前的元素上走,在同一頁上的」

我已經嘗試使用$(document.ready()標籤中的old_keycode和old_keycode_timepressed和new_keycode new_keycode_timepressed,但是我需要複製/粘貼我想要的每個鍵碼的整個代碼,並且代碼本身並不高效。有沒有聽說過一個插件,可以幫助我,或任何人都願意幫助我惠?

謝謝你的 時間。

+0

通常以 「回去」 我們用這個漂亮的(←)按鈕或一些愛好者使用後退鍵。有趣的是,你試圖實現一個在www上不常見的UI(用戶界面)。我建議你堅持一些對你和用戶來說更令人沮喪的東西(是**直覺**還是正確的詞?)。 – 2013-05-09 04:32:44

+1

那麼,生病是唯一一個使用它,它將與一個基本的紅外遙控器,我敢肯定用戶很好的用戶界面;) – 2013-05-09 04:47:30

回答

2

jsFiddle demo

var twice_37 = 0; 

$(document).on('keyup', function(e){ 

    if(e.which===37){   // If left arrow  

    if(twice_37===1){  // (remember that twice_37 is 0 initially) 
     alert('Do something! (you pressed Left twice!)'); 
    } 

    twice_37 = 1;   // Set to 1 and... 
    setTimeout(function(){ // ...reset to 0 after 1s 
     twice_37 = 0; 
    }, 1000); 

    } 

}); 
+0

哈哈這種方法比我更容易..謝謝你的時間RoXon;) – 2013-05-09 04:50:28

+0

@JeremyDicaire;)不客氣,刪除了'clearTimeout'這一行,這是不必要的。 – 2013-05-09 04:51:42

+1

已經在這裏完成:P – 2013-05-09 04:54:22