我希望能夠捕捉雙鍵按鍵(例如Char T),以便進行一些特殊處理。我希望按鍵發生得足夠快,不會被解釋爲兩個單獨的按鍵,只是像雙擊。 任何想法,我可以如何實現這一目標?如何在javascript中捕獲雙重按鍵?
9
A
回答
16
當鑰匙被擊中時,記下時間。然後將它與您記下密鑰的時間相比較最後。
如果差異在您的閾值內,則認爲它是雙倍的。否則,不要。粗糙例如:
var delta = 500;
var lastKeypressTime = 0;
function KeyHandler(event)
{
if (String.fromCharCode(event.charCode).toUpperCase()) == 'T')
{
var thisKeypressTime = new Date();
if (thisKeypressTime - lastKeypressTime <= delta)
{
doDoubleKeypress();
// optional - if we'd rather not detect a triple-press
// as a second double-press, reset the timestamp
thisKeypressTime = 0;
}
lastKeypressTime = thisKeypressTime;
}
}
10
有你,當一個按鍵事件發生設置爲true的變量(也許first_press
),並啓動一個計時器,將在設定的時間量後的變量重置爲假(但快你想他們按下鍵)。
在你的按鍵事件中,如果該變量爲真,那麼你有一個雙擊。
實施例:
var first_press = false;
function key_press() {
if(first_press) {
// they have already clicked once, we have a double
do_double_press();
first_press = false;
} else {
// this is their first key press
first_press = true;
// if they don't click again in half a second, reset
window.setTimeout(function() { first_press = false; }, 500);
}
}
相關問題
- 1. 如何在Ruby中捕獲按鍵?
- 2. 如何捕獲按鍵在Matlab uipanel
- 3. Javascript捕獲鍵
- 4. 在Sqlite3中捕獲雙元組(按主鍵)
- 5. 如何在Linux中捕獲按鍵(鍵盤記錄)?
- 6. 鍵盤按鍵捕獲
- 7. 當用戶在android中按下「搜索軟鍵」時如何捕獲如何在android中按下「搜索軟鍵」時捕獲如何捕獲android
- 8. jQuery:如何使用live捕獲按鍵()
- 9. 如何捕獲ALT + C按鍵
- 10. 如何捕獲外部設備按鍵?
- 11. 在黑莓鍵盤上捕獲按鍵
- 12. 在java面板中捕獲按鍵
- 13. 捕獲在C#中的Shift + Tab按鍵
- 14. 在VB.NET中捕獲按鍵事件
- 15. 捕獲電源鍵在android中按?
- 16. C#捕獲按Ctrl + PageUp鍵按鍵
- 17. MongoDB的雙重按鍵
- 18. 在ngTable中捕獲雙擊
- 19. 如何捕獲全球按鍵在java中
- 20. 如何在android中捕獲長按音量降低鍵?
- 21. 如何捕獲在TextBox中按下的ENTER鍵?
- 22. 如何在RichTextBox中捕獲Ctrl-Z按鍵
- 23. Python:如何在QT GUI中捕獲Ctrl-O鍵按下?
- 24. 如何捕獲JavaScript的重定向?
- 25. 如何在C#中捕獲刪除鍵?
- 26. 如何在GtkEntry中捕獲回車鍵
- 27. 如何在窗體中捕獲「Enter」鍵?
- 28. 如何捕捉按鍵?
- 29. 捕獲按免費pascal鍵?
- 30. 捕獲按鍵信息
此解決方案使用Ctrl鍵。他沒有說他需要這個(儘管對我來說是有意義的)。 – 2009-08-03 18:36:34
** @ Josh Stodola:**哈!顯示我仔細閱讀......看到「Char T」,讀「Ctrl T」...哎呀! – Shog9 2009-08-03 18:42:17