Есть ли способ определить, открыто ли раскрывающееся меню <select>?

Я ищу способ определить, если / когда<select> Меню элемента открыто. Мне не нужно заставлять его открываться или закрываться, просто выясните, открывается ли он или закрывается в определенный момент времени.

Я могу прослушивать события, связанные с фокусировкой / размытием, мышью / муссом, и т. Д., Но я не думаю, что смогу достоверно определить состояние меню по этим событиям. Например, mousedown, за которым следует mouseup, может означать, что пользователь щелкнул и перетащил к выделенному элементу и отпустил (в этом случае меню теперь закрыто) или щелкнул и отпустил, чтобы открыть меню (в этом случае меню открыто). Также вероятно, что конкретное поведение выпадающих меню зависит от браузера.

Я знаю, что могу сделать это, если разверну свое собственное выпадающее меню, но я предпочитаю использовать<select>.

Есть ли надежный способ узнать, открыто ли раскрывающееся меню? Или это то, что Javascript не может знать?

Вывод: По-видимому, не существует какого-либо гарантированного способа определить, открыто ли меню выбора, либо путем запроса объекта, либо путем прослушивания событий, которые он вызывает.

Для собственного использования я просто отслеживаю, имеет ли выбор фокус, используяOnFocus а такжеONBLUR, Я предполагаю, что нет никакого способа открыть меню, не имея фокуса, и это, похоже, справедливо для всех браузеров, которые я тестировал. Это на самом деле не говорит мне, когда меню открыто, но оно говорит мне, когда ононе может быть открытым, что достаточно для моих целей.

Ответы на вопрос(4)

Ваш ответ на вопрос