Как использовать события для выпадающего меню?

Есть меню с подменю, вот структура пункта с подменю:

<div class="main-menu__item main-menu__submenu">
            <div class="main-menu__submenu__title">Вопросы и отзывы</div>
            <div class="main-menu__submenu__items">
                <div class="main-menu__submenu__item"><a class="main-menu__submenu__link" href="">Написать</a></div>
                <div class="main-menu__submenu__item"><a class="main-menu__submenu__link" href="">Часто задаваемые вопросы</a></div>
            </div>
        </div>


Выпадающий блок вынесен за пределы родительского с помощью position absolute и скрыт (display:none). Выглядит при наведении вот так:
59ecef3754aa4961639862.png

Я повесил через jQuery для div.main-menu__submenu (родитель) на событие mousenter display: block, а на mouseleave - display: none.

$(document).ready(function() {
    $('.main-menu__submenu').mouseenter(function() {
        var target = $(this).find(".main-menu__submenu__items")[0];
        target.style.display = 'block';
);

    $('.main-menu__submenu').mouseleave(function() {
        var target = $(this).find(".main-menu__submenu__items")[0];
            target.style.display = 'none';
    });
});


Всё бы хорошо, но когда после наведения на название подменю курсор оказывается в зазоре между ним и самим подменю, срабатывает mouseover и подменю исчезает.

Что в данном случае можно прописать, чтобы это исправить? Нужно, чтобы, если курсор движется в сторону подменю, оно не пропадало.
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
Negwereth
@Negwereth
lvivcss.com.ua
Например сделать контейнер, вплотную прилегающий к родительскому пункту меню, а зазоры уже внутри него делать?

И да, для этого жиквери нафиг не нужен, достаточно CSS правила с :hover по родителю и как там уже к подменю обращение идёт, через + или >
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽
23 июн. 2024, в 22:40
1000 руб./за проект
23 июн. 2024, в 22:19
500 руб./за проект