返回有沒有辦法趕上組合鍵CTRL + X + 回報 jQuery中(或javascript),例如,如果用戶按下這個組合鍵,一個函數被調用。我嘗試使用jquery熱鍵插件,但沒有奏效。如何綁定組合鍵Ctrl + X + jQuery中
回答
使用全局布爾數組var keys = []
來檢查是否按下了一個鍵。然後使用下面的函數添加全局熱鍵:
window.addGlobalHotkey = function(callback,keyValues){
if(typeof keyValues === "number")
keyValues = [keyValues];
var fnc = function(cb,val){
return function(e){
keys[e.keyCode] = true;
executeHotkeyTest(cb,val);
};
}(callback,keyValues);
window.addEventListener('keydown',fnc);
return fnc;
};
正如你可以看到它增加了一個新的監聽器'keydown'
事件。該監聽器將首先將keys
中的對應值設置爲true,然後執行測試,無論給定的keyValues
當前是否爲真。請注意,您無法刪除keys[e.keyCode] = true
並將其放入另一個偵聽器中,因爲這可能導致錯誤的回調順序(第一次熱鍵測試,然後是鍵映射)。該executeHotkeyTest
本身是非常容易的事:
window.executeHotkeyTest = function(callback,keyValues){
var allKeysValid = true;
for(var i = 0; i < keyValues.length; ++i)
allKeysValid = allKeysValid && keys[keyValues[i]];
if(allKeysValid)
callback();
};
最後,你必須到其它監聽從keys
添加到keyup
清理被釋放的鍵。
window.addEventListener('keyup',function(e){
keys[e.keyCode] = false;
});
現在你可以熱鍵添加到CTRL通過addGlobalHotkey(callback,[13,17,88])
+ X +輸入:
addGlobalHotkey(function(){
document.body.appendChild(
document.createElement('div').appendChild(
document.createTextNode('Ctrl + x + Enter down')
).parentNode);
},[88,13,17]);
而不是添加監聽每一個你可以使用全局熱鍵[[callback1,values1],[callback2,values2],...]
數組。
重要提示:在IE早期版本9,你必須使用attachEvent
,而不是addEventListener
。由於您已經在使用jQuery,因此您可以使用.on(...)
或.keydown
。
您可以使用按鍵下壓事件對象
$(document).keypress(function(e) {
if(e.ctrlKey) {
// do code to test other keys
}
});
而且SHIFT,ALT鍵保留有屬性的ctrlKey財產,但回車鍵具有鍵代碼13
是否有任何理由,你可以不要嘗試不同的組合 - 例如CTRL-ALT-X?回車鍵通常用於觸發表單提交和網頁上的其他事件。
$("body").bind("keydown",keyDown);
function keyDown(e){
if((e.ctrlKey)&&(e.keyCode == 88)&&(e.keyCode == 13)){
alert("Keys down are Ctrl + x + Return");
}
}
您可能會發現使用KeyboardJS是一個更好的解決方案。它的水壩簡單易用。這裏是docs;
KeyboardJS.on('ctrl + x + enter', function() {
//do stuff on press
}, function() {
//do stuff on release
});
另外,如果要強制X之前,按CTRL或輸入你能做到這一點,而不是
KeyboardJS.on('ctrl > x + enter', function() {
//do stuff on press
}, function() {
//do stuff on release
});
我試過jquery hotkeys和mousetrap,都沒有工作......似乎還沒有在一段時間內更新。這已經被最近更新並且工作! – Chris 2017-11-20 17:43:28
只是簡單地鍵入如下:
document.getElementById('yourelementid').onkeydown = function(){
if(event.ctrlKey===true && event.keyCode==88){
//your code goes here
}
}
//no depedency needs. pretty straight-forward
- 1. 在jQuery中綁定ctrl + u擊鍵
- 2. 使用jquery.hotkeys.js綁定Ctrl和Ctrl +鍵
- 3. VMWare ctrl-z鍵綁定,如何刪除
- 4. 如何模擬Ctrl-S組合鍵?
- 5. linux組合鍵[Ctrl +,]和[Ctrl +。]被禁用?
- 6. 如何按Ctrl-Tab和Ctrl-Shift-Tab鍵綁定在TMUX爲mintty
- 7. 如何使用ToolsApi將鍵綁定Shift + Ctrl + H X添加到Delphi IDE中?
- 8. 在Sublime Text中綁定組合鍵3
- 9. 綁定Alt + Shift鍵按住Ctrl鍵
- 10. 在PuTTY中創建ctrl + tab鍵綁定
- 11. 觸發函數 - 鍵綁定CTRL + Z
- 12. chrome中的ctrl + n組合鍵
- 13. 與CUA(CTRL-X CTRL-V ...)鍵綁定(不像六)控制檯代碼編輯器
- 14. 如何在按R.Alt +鍵時防止激活Ctrl + Alt +鍵綁定?
- 15. 結合CTRL + X +返回使用jQuery插件熱鍵
- 16. 綁定Ctrl + Tab鍵和Ctrl + Shift + Tab鍵在TMUX
- 17. 如何處理按Ctrl + X快捷鍵
- 18. 如何在Kivy中創建一個鍵盤綁定(Ctrl + O)?
- 19. 如何在WPF中綁定Ctrl和數字鍵盤/(正斜槓)?
- 20. 如何綁定組合框
- 21. 如何使用comint將編譯綁定到組合鍵
- 22. 如何在C++中實現CTRL-A組合鍵
- 23. 如何在WPF RichEdit控件中捕獲組合鍵(CTRL + ALT + SPACE)
- 24. Autohotkey:通過組合快速鍵合一個鍵CTRL +鍵
- 25. 如何在python tkinter中綁定Ctrl + /?
- 26. 如何在魚中綁定Ctrl-Enter?
- 27. 如何使用WPF MVVM中的外鍵綁定組合框
- 28. 從javascript生成Ctrl + F1組合鍵
- 29. 綁定組合框 - 處理外鍵
- 30. 用jQuery重新綁定Ctrl +數字鍵操作
我看到,也許有一個問題與CTRL-返回組合,特別是跨瀏覽器 - 進一步閱讀這裏:http:// stackoverflow。 com/questions/3532313/jquery-ctrlenter-as-enter-in-text-area – 2012-03-31 09:36:07