我正在开发自己的jQuery导航菜单并遇到一些问题,因为一旦从主导航菜单上的选择中取消焦点,子菜单就会消失。我知道必须有一个简单的解决方案,但我花了好几个小时,并认为是时候寻求帮助了。
以下是代码:
jQuery的:
$(document).ready(function() {
$('.myMenu li ul').hide(); //hide all sub menus
$('.myMenu > li').mouseenter(function() {
$(this).find('ul').stop(true, true).fadeIn("fast");
});
$('.myMenu > li').mouseout(function() {
$(this).find('ul').stop(true, true).fadeOut("fast");
});
});
HTML:
<div id="navigation">
<ul class="myMenu">
<li><a href="#">Main 1</a></li>
<li><a href="#">Main 2</a>
<ul>
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
<li><a href="#">Sub 3</a></li>
<li><a href="#">Sub 4</a></li>
<li><a href="#">Sub 5</a></li>
<li><a href="#">Sub 6</a></li>
<li><a href="#">Sub 7</a></li>
<li><a href="#">Sub 8</a></li>
<li><a href="#">Sub 9</a></li>
</ul>
</li>
<li><a href="#">Main 3</a>
<ul>
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
<li><a href="#">Sub 3</a></li>
</ul>
</li>
<li><a href="#">Main 4</a></li>
<li><a href="#">Main 5</a></li>
<li><a href="#">Main 6</a></li>
<li><a href="#">Main 7</a></li>
<li><a href="#">Main 8</a></li>
</ul>
</div>
欢迎任何帮助!
答案 0 :(得分:2)
这只是您上面的确切代码转换为the .hover()
method的正确格式,可以方便地将mouseenter
和mouseleave
合并到一个方法中。
$('.myMenu > li').hover(
function() {
$(this).find('ul').stop(true, true).fadeIn("fast");
},
function() {
$(this).find('ul').stop(true, true).fadeOut("fast");
});
它似乎解决了你所描述的问题。当你在相应的子菜单中时,“Main 2”和“Main 3”保持打开状态。
答案 1 :(得分:1)
这就是我所做的让你的问题更容易一些。 http://jsfiddle.net/raynesax/GWvVj/5/