Я ищу способ определить, открыто ли меню элемента <select>
. Мне не нужно заставлять его открываться или закрываться, просто выясните, открывается ли он или закрывается в определенный момент времени.
Я могу прослушивать события для фокусировки / размытия, наведения мышки / размытия и т. Д., Но не думаю, что смогу достоверно определить состояние меню по этим событиям. Например, mousedown, за которым следует mouseup, может означать, что пользователь щелкнул и перетащил к выделению и отпустил (в этом случае меню теперь закрыто) или щелкнул и отпустил, чтобы открыть меню (в этом случае меню открыто). Также вероятно, что конкретное поведение выпадающих меню зависит от браузера.
Я знаю, что смогу сделать это, если разверну свое собственное выпадающее меню, но я предпочитаю использовать <select>
.
Есть ли надежный способ узнать, открыто ли раскрывающееся меню? Или это то, что Javascript не может знать?
Вывод: По-видимому, не существует какого-либо гарантированного способа определить, открыто ли меню выбора, либо путем запроса объекта, либо путем прослушивания событий, которые оно запускает.
Для собственного использования я просто отслеживаю фокусировку выбора, используя onfocus и onblur . Я предполагаю, что нет никакого способа открыть меню, не имея фокуса, и это, похоже, справедливо для всех браузеров, которые я тестировал. На самом деле оно не сообщает мне, когда меню открыто, но говорит, когда оно не может быть открытым, что достаточно для моих целей.