javascript - 检测Javascript中的左右控制键

标签 javascript dom-events keydown keyup

我有一个文本输入,我需要在执行 CTRL-V 时绑定(bind)一个事件。我设置了一个名为 ctrl 的全局变量每当 keydown 时设置为 1被 which 解雇值为 17。类似地,当 keyup 时,它变为 0。被 which 解雇值(value) 17

问题是,有两个 CTRL 键。因此,如果我执行以下操作:首先按下左 CTRL 键,同时按下它,同时按下右 CTRL 键(以便现在按下两个 CTRL 键),然后我只释放其中一个,keyup被触发并且变量 ctrl设置为 0,即使仍在按下另一个 CTRL 键。

我如何触发事件,以便仅当两个 CTRL 键都打开时才将变量设置为 0(我不需要完全区分它们)。

最佳答案

Update : this is now possible in modern browsers



在Javascript中检测左右控制键的最简单方法

$(document).ready(function(){
  $("html").keydown(function(e) {

      if (e.ctrlKey) {
         if (event.location == 1) console.log('left ctrl');
         if (event.location == 2) console.log('right ctrl');
      }

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


注意:当您运行代码片段以激活键盘键时,您必须单击内部空白。这是在 Chrome 和 Safari 中测试的。

关于javascript - 检测Javascript中的左右控制键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15173533/

相关文章:

javascript - 切换选项卡/窗口时忽略模糊/聚焦事件

javascript - 无法使第二个事件监听器适用于 MVC 计数器应用程序

javascript - 使用JavaScript(ES5)的简单事件系统-JS自定义事件

C# KeyDown事件多个Key加ControlKey

jquery - 在输入文本上触发 jQuery 的按键事件

javascript - 按住时 KeyDown 不会连续触发

javascript - 自定义数据表中的渲染

javascript - Jest 不转换 CSS 文件导入语句

javascript - 不使用选择器选择元素,仅使用元素 ID

javascript - 如何让 WebDriver 等到 Sencha AJAX 调用完成?