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