Добро пожаловать на SO. Проблема с заменой click
на mouseover
- это способ проверки event.target
. Он будет совпадать только тогда, когда ваша мышь находится над .dropbtn
, а не детьми. Однако существует свойство event.currentTarget
, которое всегда будет соответствовать элементу, к которому был прикреплен ваш обработчик событий. Это будет правильное использование:
document.querySelector('.dropbtn').addEventListener('mouseover', function(event) {
if (event.currentTarget...)
});
Несмотря на то, что для решения вопроса не принято предлагать другой язык, я настоятельно рекомендую рассмотреть CSS-решение для любых всплывающих меню. Намного проще и предпочтительнее в наше время. У WC3 есть отличное руководство по этому вопросу. . Однако, если вы планируете сделать свой сайт мобильным, вы можете придерживаться меню щелчка (вы не можете очень хорошо парить на мобильном телефоне). Надеюсь, это поможет.