我正在整理一个包含嵌套 ul 的简单下拉列表。我希望它在悬停在顶层 li 上时动画到可见状态。然后,当鼠标离开整个导航区域时,动画到隐藏状态。
动画到可见状态时效果很好。我的问题是隐藏部分。每当鼠标离开顶层 li 时,它似乎都会触发 mouseleave。我认为 mouseleave 不应该对子元素这样做,除非我想错了。
下面是代码。任何帮助或见解表示赞赏。
$(document).ready(function() {
//When mouse rolls over
$('#mainNavBar li').mouseenter(function(){
$('.menuDrop').stop().animate({height:'163px'},{ queue:false, duration:300, easing: 'easeInQuart'})
});
//When mouse is removed
$('#mainNavBar li').mouseleave(function(){
$('.menuDrop').stop().animate({height:'0px'},{ queue:false, duration:300, easing: 'easeOutQuart'})
});
});
和 HTML
<ul id="mainNavBar">
<li id="pos1"><a href="#"><span class="accesslinks">TOP 1</span></a>
<div class="menuDrop">
<ul class="products">
<li class="active">Product 1</li>
<li>Product 2</li>
<li>Product 3</li>
<li>Product 4</li>
</ul>
<ul class="tabs">
<li class="selected"><a href="#">Tab 1</a></li>
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 3</a></li>
<li><a href="#">Tab 4</a></li>
</ul>
</div>
</li>
<li id="pos2"><a href="#"><span class="accesslinks">TOP 2</span></a>
<div class="menuDrop">
<ul class="products">
<li class="active">Product 5</li>
<li>Product 6</li>
<li>Product 7</li>
<li>product 8</li>
</ul>
<ul class="tabs">
<li class="selected"><a href="#">Tab 1</a></li>
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 3</a></li>
<li><a href="#">Tab 4</a></li>
</ul>
</div>
</li>
</ul>