首页 > 解决方案 > 按住 shift+enter 键触发事件

问题描述

我试图在按下shift + enter键时调用一个函数。

我正在尝试的是这个

$('.o_searchview_input').on('keydown', function(event) {
debugger;
  if (event.keyCode == 13 && !event.shiftKey) {
    $(this).trigger(jQuery.Event("keydown", {
      keyCode: 13, // ENTER
      shiftKey: true
    }));
  } else if (event.keyCode == 13 && event.shiftKey) {
    console.log('shift + enter');
  }
});

但它会自动按shift键。

我担心JavaScript中是否有任何选项可以在按下两个键时触发偶数?

标签: javascript

解决方案


没有事件检查是否按下了多个键。如果要检查 2 个键,则需要创建keydown事件keyup来跟踪哪些键被按下但未手动释放。

此规则的例外是Shift Altand Ctrl/Cmd 这些被称为键修饰符,可以像在您的示例中一样使用:

if (event.keyCode == 13 && event.shiftKey) // do something


推荐阅读