【发布时间】:2012-10-10 19:52:33
【问题描述】:
当用户在按下 Tab 键时专注于特定元素时,我想执行特定功能。但我不希望执行此函数,除非在按下 Tab 键时该特定元素具有焦点。
有没有办法从 keydown 事件本身判断哪个元素具有(具有?)焦点?或者我应该设置一个particularElementHasFocus 属性来响应该元素上的 onBlur 和 onFocus 事件?
【问题讨论】:
标签: javascript javascript-events
当用户在按下 Tab 键时专注于特定元素时,我想执行特定功能。但我不希望执行此函数,除非在按下 Tab 键时该特定元素具有焦点。
有没有办法从 keydown 事件本身判断哪个元素具有(具有?)焦点?或者我应该设置一个particularElementHasFocus 属性来响应该元素上的 onBlur 和 onFocus 事件?
【问题讨论】:
标签: javascript javascript-events
您可以使用document.activeElement 获取当前焦点元素。
要么
采用
以下代码
var particularElementHasFocus ;
$('input, textarea, button').focus(function() {
particularElementHasFocus = this;
});
$('input, textarea, button').blur(function() {
particularElementHasFocus = null;
});
【讨论】:
使用 jQuery 可以通过测试相关元素的.focus 来完成。使用标准 JS,您可以使用 document.activeElement - https://developer.mozilla.org/en-US/docs/DOM/document.activeElement
【讨论】: