2014-01-06 96 views
3

如何測試HTML元素是否關注?我想在未選擇下拉選擇列表時執行代碼。所以,如果您點擊文檔,而不是選擇列表中的任何地方,則JavaScript將取消選中它的所有元素。未選擇檢測元素

此語句不工作:

var items=document.getElementById("items"); 
items.focused==false; 

我希望有人能幫助我。

+2

不是一個確切的重複,但非常接近:http://stackoverflow.com/questions/483741/how -to-determine-which-html-page-element-has-focus –

+1

你可以使用事件'onblur',當某些東西失去焦點時被調用 – RononDex

+0

檢查項目是否=== document.activeElement' – crush

回答

4

的JavaScript的新版本允許這樣的:

if(items.matchesSelector(":focus")) 

但對於舊的瀏覽器,你可以嘗試:

if(document.querySelector("#items:focus")) 

但是這不會在IE 7及以上的工作。

如果您需要這些支持,那麼我建議是這樣的處理程序:

// some means of attaching a handler(evt) { 
evt = evt || window.event; 
var target = evt.srcElement || evt.target; 
while(target) { 
    if(target.id == "items") return true; 
    target = target.parentNode; 
} 
// #items is not the target. Do something. 
+1

需要更多jquery – crush

+0

@crush我知道,對吧? :d –