检测元素未选中

时间:2014-01-06 15:21:11

标签: javascript html dom

如何测试HTML元素是否聚焦?我想在未选择下拉列表选择列表时执行代码。因此,如果单击文档,除了选择列表之外的其他任何位置,JavaScript都会取消选择所有元素。

此声明无效:

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

我希望有人可以帮助我。

1 个答案:

答案 0 :(得分: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.