2014-01-06 69 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 –