ele*_*y19 5 javascript jquery events keydown
我试图在我的应用程序中捕获某些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();
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法轻松检查其他控制键,或者我是否需要捕获这些事件并在某些全局布尔值中保留它们this.isInsertPressed?
你可以这样做:
var keysPressed = {};
var keys = { insert: 45 };
$(window).keydown(function(e) { keysPressed[e.which] = true; });
$(window).keyup(function(e) { keysPressed[e.which] = false; });
Run Code Online (Sandbox Code Playgroud)
然后后来:
if (keysPressed[keys.insert]) {
// insert key is currently down
}
Run Code Online (Sandbox Code Playgroud)