Как проверить, остается ли элемент select "открытым" / активным с помощью jquery

есть ли в любом случае я могу обнаружить через jQuery, если элемент select form активен в данный момент?

Я создал эту скрипку, чтобы продемонстрировать проблему:

http://jsfiddle.net/E2PhT/2/

при наведении указателя мыши на"поиск" -ссылка форма поиска отображается. Когда вы теперь нажимаете на поле выбора, чтобы открыть параметры внутри, а затем, ничего не выбирая, оставьте форму на правой стороне (переместите мышь за правый край серого блок), поле выбора остается открытым, пока все eles исчезает (как и должно).

теперь я хотел бы либо снова сделать элемент select неактивным, чтобы он не оставался открытым, либо предотвратить исчезновение остальной части формы, пока элемент select все еще открыт.

Так или иначе, я должен каким-то образом определить, открыто ли поле select или активно. Есть ли способ проверить это состояние с помощью jQuery?

Thx для справки.

2 ответов


Вы можете попробовать :focus селектор:

if (!$("select").is(":focus")) {
    // ...
}

демо: http://jsfiddle.net/E2PhT/3/


вы можете использовать глобальную логическую переменную, например:

var isFocused;
$(document).ready(function(){
    $('select').focus(function(){
        isFocused = true;
    }).blur(function(){
        isFocused = false;
    });
});