我想在整个文档中找到当前焦点元素。 我尝试使用:focus
伪类使用jQuery 1.6介绍:选择当前的焦点元素
$(document).find(":focus")
但$(document).find(":focus").length
总是返回0
我想在整个文档中找到当前焦点元素。 我尝试使用:focus
伪类使用jQuery 1.6介绍:选择当前的焦点元素
$(document).find(":focus")
但$(document).find(":focus").length
总是返回0
您应该能够使用document
的activeElement
属性:
var focus = $(document.activeElement);
如果您查看:focus
的jQuery文档,它使得这一点非常清晰:
如果您正在寻找当前的焦点元素,$( document.activeElement)将检索它,而不必搜索整个DOM树。
值得注意的是,如果当前没有焦点的元素,activeElement
将引用body
。
与其他伪类选择器(那些带有一个begin“:”),它 建议先于:焦点与标签名称或一些其它 选择器;否则,暗示通用选择器(“
*
”)。在其他 单词中,裸露的$(':focus')
相当于$('*:focus')
。
如果你想$(document.activeElement)
替代,这将检索一个重点,你可以使用目前的元素:
$(document).delegate("*", "focus blur", function(event) {
var elem = $(this);
// here use elem.is(":focus") which is your element that has focus
//for example :
elem.toggleClass("focused", elem.is(":focus"));
});
谢谢你,巧妙的解决办法。 – Valentino 2012-02-05 11:24:54
没问题,很高兴我能帮忙:) – 2012-02-05 11:26:28