我有一个用Jquery制作的下拉菜单。
现在,如果将鼠标悬停在所有菜单项上,其子菜单将同时显示。
我想如果我将鼠标悬停在一个菜单上,然后转到下一个菜单,则上一个菜单的子菜单将向上滑动。就像现在一样,我必须将它们从子菜单中拖出来让它们向上滑动。
更简单一点,当将鼠标悬停在父菜单上时,如果它们处于打开状态,请向上滑动所有其他父菜单的子菜单。
$("#DropDownMenu li.parent").hover(function() {
$(this).find(".subMenu").slideDown('fast').show();
$(this).parent().find(".subMenu").hover(function() {
}, function() {
$(this).parent().find(".subMenu").slideUp('slow');
});
});
标记基本上就是这样,
<ul id="DropDownMenu">
<li class="parent"><a>Link1</a>
<ul class="subMenu">
<li><a>SubLink1</a></li>
<li><a>SubLink2</a></li>
<li><a>SubLink3</a></li>
<li><a>SubLink4</a></li>
</ul>
</li>
<li class="parent"><a>Link2</a>
<ul class="subMenu">
<li><a>SubLink1</a></li>
<li><a>SubLink2</a></li>
<li><a>SubLink3</a></li>
<li><a>SubLink4</a></li>
</ul>
</li>
答案 0 :(得分:1)
不太确定,可能将slideUp链接到slideDown吗?
查看此页面:http://jqueryfordesigners.com/关于jquery的非常好的播客。 你会在那里找到一个答案
答案 1 :(得分:0)
我已经成功解决了!通过使用.siblings(),我可以滑动所有其他父级的子菜单。
$("#DropDownMenu li.parent").hover(
function() {
$(this).find(".subMenu").slideDown('fast');
$(this).siblings().find(".subMenu").slideUp('slow');
$(this).parent().find(".subMenu").hover(function() {
}, function() {
$(this).parent().find(".subMenu").slideUp('slow');
});
});