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

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

我试图在我的应用程序中捕获某些keydown事件,但前提是同时没有按下“控制”键.我不想遇到屏幕阅读器键盘快捷方式的问题. Shift,Ctrl和Alt很容易检查,因为它们是在javascript事件上,但我还需要检查Ins和Windows键以及任何Mac控制键.

这是我到目前为止所做的并且它按预期工作,但是当Ins或Windows被按下时我的事件仍然被触发.

  1. handleKeydown: function(event) {
  2. var comboKeyPressed = event.ctrlKey || event.shiftKey || event.altKey;
  3. if(!comboKeyPressed && event.keyCode === $.ui.keyCode.HOME) {
  4. event.preventDefault();
  5. this.$('>ul>li:last').attr('tabindex',-1);
  6. this.$('>ul>li:first').attr('tabindex',0).focus();
  7. } else if (!comboKeyPressed && event.keyCode === $.ui.keyCode.END) {
  8. event.preventDefault();
  9. this.$('>ul>li:first').attr('tabindex',-1);
  10. this.$('>ul>li:last').attr('tabindex',0).focus();
  11. }
  12. }

有没有办法轻松检查其他控制键,还是我需要捕获这些事件并在某些全局布尔值中保留它们,如this.isInsertPressed?

最佳答案
你可以这样做:

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

然后是:

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

猜你在找的jQuery相关文章