我想在應用程序中捕獲某些keydown事件,但前提是沒有同時按下「控制」鍵。我不想遇到屏幕閱讀器鍵盤快捷方式的問題。 Shift
,Ctrl
和Alt
很容易檢查,因爲它們在javascript事件中,但我還需要檢查Ins
和Windows
密鑰以及任何Mac控制密鑰。如何判斷插入鍵是否被按下
這是迄今爲止我所得到的結果,它按預期工作,但我的事件仍然在觸發Ins
或Windows
時被觸發。
handleKeydown: function(event) {
var comboKeyPressed = event.ctrlKey || event.shiftKey || event.altKey;
if(!comboKeyPressed && event.keyCode === $.ui.keyCode.HOME) {
event.preventDefault();
this.$('>ul>li:last').attr('tabindex', -1);
this.$('>ul>li:first').attr('tabindex', 0).focus();
} else if (!comboKeyPressed && event.keyCode === $.ui.keyCode.END) {
event.preventDefault();
this.$('>ul>li:first').attr('tabindex', -1);
this.$('>ul>li:last').attr('tabindex', 0).focus();
}
}
有沒有一種方法可以輕鬆地檢查其他控制鍵或做我需要捕獲這些事件並緊緊抓住它們就像this.isInsertPressed
一些全球性布爾?
,將捕獲它時,它的最初按下,但它仍然保持下來的時候'event.keyCode === $ .ui.keyCode.HOME',我需要不允許它做任何事情。 –
您還需要跟蹤keyup事件並檢查前一個密鑰是否已發佈 –