Я пытаюсь найти чистый способ отображения выпадающего списка и заставить его уйти при выходе. Это звучит как кусок пирога, но это не из-за иерархии ul/li.jQuery - выпадающее меню показать/скрыть
Вот структура меню:
<li class="has-submenu navigation-link">
<a href="<link>">TEST</a>
<ul class="submenu menu vertical" data-submenu="">
<a href="<link>">TEST</a>
</ul>
</li>
по умолчанию, .submenu устанавливается на дисплей: нет
Я использую следующий JQuery:
$(".has-submenu").hover(function()
{
$(this).children('ul').slideDown();
});
$(".submenu").mouseout(function()
{
$(this).delay(800).fadeOut(100);
});
Когда я иду снова. has-submenu, второй div появляется, но когда я уезжаю, div исчезает, а затем появляется снова, потому что, уходя из .submenu, я также ударяю .has-menu по пути.
Есть ли способ избежать попадания в основной div на моем пути, чтобы достичь желаемого эффекта?
Благодаря
Laurent
ответ Praveen является большим, и я люблю его за это стилистическая простота. Альтернативный подход, который я использовал, состоит в том, чтобы поместить раскрывающийся список внутри DIV и вызвать функцию onblur или onchange, чтобы он исчез, когда я закончил использовать его. – OverlordvI
@OverlordvI Мы можем полностью избежать JavaScript. Это была моя идея. –
Мне это нравится! Я собираюсь использовать ваш код для некоторых моих собственных проектов. – OverlordvI