javascript – 如何判断插入键是否被按下

前端之家收集整理的这篇文章主要介绍了javascript – 如何判断插入键是否被按下前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图在我的应用程序中捕获某些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?

最佳答案
你可以这样做:

var keysPressed = {};
var keys = { insert: 45 };    
$(window).keydown(function(e) { keysPressed[e.which] = true; });
$(window).keyup(function(e) { keysPressed[e.which] = false; });

然后是:

if (keysPressed[keys.insert]) {
    // insert key is currently down
}

猜你在找的jQuery相关文章