중첩 된 ul을 포함하는 간단한 드롭 다운을 구성하고 있습니다. 최상위 레벨 li 위로 마우스를 가져 가면 보이는 상태로 애니메이트되기를 원합니다. 그리고 마우스가 전체 탐색 영역을 떠날 때 숨겨진 상태로 애니메이션을 적용합니다.중첩 된 ul에 대한 jQuery 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>
감사합니다. 나는 인접 형제 선택자를 잊었다. 또한 hover를 사용하여 코드를 정리했습니다. 이전에 호버를 사용해 보았지만 너무 많은 문제가있어서 그 원인을 몰랐고 위의 코드로 되돌아갔습니다. 또한,이 방법으로는 완전히 해결되지 않았지만 솔루션으로 향하게되었습니다. 내 CSS에서 나는 클래스 .menudrop 표시하도록 설정했다 : none ;. 이 작업을 올바르게 수행하려면 오버플로해야합니다 (숨김). 디스플레이 : 없음; 이탈 상태가 보이지 않게하고있었습니다. – MAZUMA