Почему не корректно работает событие mouseenter/mouseleave?

Код по ссылке. Заранее прошу прощения за не совсем корректное описание багов. При событии mouseenter на блок так же раскрываются соседние блоки и остаются раскрытыми. Так же при событии mouseleave слева (провести курсов мыши через маркер li) блок вновь раскрывается, в чем может быть причина такого поведения?
  • Вопрос задан
  • 3057 просмотров
Пригласить эксперта
Ответы на вопрос 2
Либо маркеры отключайте, либо события ловите не на элементах меню, а на каком-то их содержимом. Ибо маркеры являются частью элемента, но обособленным от его содержимого. Когда курсор проходит через маркер, забивает очередь событий, которая отрабатывается в итоге. Если «уходить» с элемента через маркер, то он переоткроется и не закроется, так как на пункт меню (маркер) курсор попал, но был уже вне контейнера, на котором ловится mouseleave.

В элементе меню сделайте два контейнера, один с заголовком, а другой с контентом, скрытый. И с ними уже работайте, дабы не городить костылей.

Вместо mouseenter и mouseleave можно цепляться к событию hover. Так и лаконичнее, и не будет проблем, связанных с тем, что события ловятся на разных элементах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы