2014-01-06 3 views
3

Как проверить, сфокусирован ли элемент HTML? Я хочу выполнить код, когда выбранный список выбора не выбран. Итак, если вы щелкнете по документу, где-либо еще, чем в списке выбора, JavaScript отменит выбор всех его элементов.Элемент обнаружения НЕ выбрано

Это утверждение не работает:

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

Я надеюсь, что кто-то может помочь мне.

+2

не является точной копией, но очень близко: http://stackoverflow.com/questions/483741/how -to-define-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 –

Смежные вопросы