2013-03-20 64 views
0

我正在構建一個頁面,其中包含各種可以聚焦的錨點和表單元素,我想知道如何獲取當前正在關注的元素(如果有重點的話)。我認爲在jQuery中做到這一點的方法是.is(:focus)。我正在尋找一個jQuery或者vanilla js解決方案 - 只是一些可行的方法。獲取關注元素的類型

這裏是我想在僞代碼來完成:

if (something is focused){ 
    get the tag name of that which is currently focused and store that in a variable as a string. 
} 
else { 
    alert("nothing is being focused on"); 
} 

而且,如果你能回答這個問題,請做到: 是不是始終專注?這意味着當沒有特定的元素或沒有特定的元素時,這個文檔/主體是否被重點關注,直到代碼或用戶完成爲止?

+0

@ultranaut謝謝你指出。那個問題有我正在尋找的答案。 – IMUXIxD 2013-03-20 16:25:50

回答

0

您可以設置元素的列表,你關心focus上,或使用通配符選擇:

$(function() { 
    var focusedEls = []; 
    $('*:visible').bind('focus', function (e) { 
     focusedEls.push(e.target); 
     console.log($.unique(focusedEls)); 
    }); 
}); 

Fiddle: http://jsfiddle.net/xfwy2/

有很多方法可以存儲所關注的元素,我只是選擇了一個數組。另外,我不確定是否要跟蹤每個元素都集中在一起,但是如果你這樣做,只需溝通$.unique()即可查看完整列表。

0

假設你想用jQuery做到這一點,你正在尋找的是jQuery .prop()方法。 $(someElement).prop('tagName')將返回標籤名稱someElement

只是把這個在一起,作爲一個例子:http://jsfiddle.net/kZbYv/1/

0

您可以使用下列內容:

$('*:focus')