Я реализовал собственный выпадающий список с HTML, CSS и JavaScript. Это работает хорошо сейчас, но я не доволен тем, как я делаю "размывание" прямо сейчас. Когда вы открываете список, а затем щелкаете где-то еще, он должен свернуться. Что я сделал, так это добавил прослушиватель событий (mousedown
) к window
после расширения списка и удаления слушателя после свертывания. Событие в основном проверяет, произошло ли событие DOM на правом элементе, используя target
, а если нет, то размытие раскрывающегося элемента управления.
Я знаю о focus
и blur
. Однако кажется, что они работают только с элементами формы, что я нахожу вполне понятным. Они также поддерживают другие сценарии, такие как «табулирование».
В любом случае, я спрашиваю вас, есть ли лучший способ сделать то, что я делаю сейчас. То, что я делаю, просто кажется глупым.