【问题标题】:Key events are not raised when escape key is pressed on a focused element在焦点元素上按下转义键时不会引发键事件
【发布时间】:2016-02-12 00:48:57
【问题描述】:

我想知道何时在输入元素上按下 Esc 键。在 Chrome 47.0.2526.106 m 上,Esc 键会移除焦点,但 JavaScript 无法捕获 keyupkeydownkeypress 事件。

演示:https://jsfiddle.net/gstvj9uq/

$("input").keydown(function() {
  alert('keydown');
});

$("input").keyup(function() {
  alert('keyup');
});

$("input").keypress(function() {
  alert('keypress');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">

任何人都可以提供一个解决方案来捕捉输入上的 Escape 键按下/向上/按下事件吗?但是,IE 10 可以捕获该事件。

【问题讨论】:

  • 对我来说非常好用,下面是如何捕捉它 -> jsfiddle.net/gstvj9uq/5
  • @adeneo 您是否先单击输入,然后按 esc 键?你在用 Chrome 吗?
  • 是的,我使用的是 Chrome,我专注于输入并点击了转义,它工作正常吗?

标签: javascript google-chrome


【解决方案1】:

遇到同样的问题,原来是vimium扩展。没有它,按下退出键不会失去焦点。

请注意,keypress 事件永远不会触发转义,只有 keydown 和 keyup

【讨论】:

  • 我知道我不应该使用 cmets 来写这样的东西,但是:谢谢! +1+1+1。是的,令人难以置信的收获。
  • 哇,我花了几个小时试图找出问题所在。感谢那! +1 +1 +1
  • amazing.I just found vimium has a trick for this condition:github.com/philc/vimium/wiki/….
  • 这个答案的第二段意义重大
  • 您的“请注意,keypress 事件永远不会为转义而触发,只有 keydown 和 keyup”非常重要,足以作为它自己的答案。感谢您的加入!
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 2023-02-15
相关资源
最近更新 更多