我想在整個文檔中找到當前焦點元素。 我嘗試使用: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