我想在应用程序中捕获某些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事件并检查前一个密钥是否已发布 –