Я пытаюсь создать выпадающее меню, используя jQuery.
У меня это работает, но проблема в том, что вы все еще можете зависать над субнавом, который выдвигается, пока новый скользит.Это приводит к тому, что меню между ними мигает, потому что mouseenter
охватывает все дочерние элементы.
Мне нужен какой-то способ удалить mouseenter
из subnav ul
во время его анимации, а затем восстановить его один раз.это сделано.Он отлично работает, если я изменяю .slideUp(300, 'swing')
на .css('display', 'none')
, но затем он внезапно исчезает.
ОБНОВЛЕНИЕ: Я установил ссылку, чтобы вы могли видеть эффект.http://samlester.net/nav/
Мой HTML-код имеет следующий формат:
<nav id="main-nav">
<ul>
<li><a href="#" id="home" class="current">Home</a></li>
<li>
<a href="#">Page 1</a>
<ul id="page1-subnav">
<li><a href="#">Page 1-1</a></li>
<li><a href="#">Page 1-2</a></li>
</ul>
</li>
<li><a href="#">Page 2</a></li>
</ul>
</nav>
и вот JavaScript, который у меня есть до сих пор ...
$(document).ready(function() {
var nav = $("#main-nav");
nav.find("li").each(function() {
if ($(this).find("ul").length > 0) {
//show submenus on hover
$(this).mouseenter(function() {
$(this).find("ul").stop(true, true).slideDown(300, 'swing');
});
//hide submenus on exit
$(this).mouseleave(function() {
$(this).find("ul").stop(true, true).slideUp(300, 'swing');
});
}
});
});
Спасибо,Sam