【问题标题】:JavaScript keydown event: can I tell what element previously had focus?JavaScript keydown 事件:我可以告诉以前哪个元素有焦点吗?
【发布时间】:2012-10-10 19:52:33
【问题描述】:

当用户在按下 Tab 键时专注于特定元素时,我想执行特定功能。但我不希望执行此函数,除非在按下 Tab 键时该特定元素具有焦点。

有没有办法从 keydown 事件本身判断哪个元素具有(具有?)焦点?或者我应该设置一个particularElementHasFocus 属性来响应该元素上的 onBlur 和 onFocus 事件?

【问题讨论】:

标签: javascript javascript-events


【解决方案1】:

您可以使用document.activeElement 获取当前焦点元素。 要么 采用 以下代码

var particularElementHasFocus  ;
$('input, textarea, button').focus(function() {
  particularElementHasFocus = this;
});

$('input, textarea, button').blur(function() {
  particularElementHasFocus = null;
});

【讨论】:

    【解决方案2】:

    使用 jQuery 可以通过测试相关元素的.focus 来完成。使用标准 JS,您可以使用 document.activeElement - https://developer.mozilla.org/en-US/docs/DOM/document.activeElement

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      相关资源
      最近更新 更多