我有一个带有jquery click()函数和toggle()的简单菜单/子菜单。 我的问题是,toggle()工作正常,但是对于例如#submenu1打开,我点击“菜单2”,#submenu1当然仍然可见,两个子菜单重叠。 所以我需要一个子菜单的hide(),但我不能让它工作!我试过没有(),兄弟姐妹()没有成功。任何帮助表示赞赏!提前谢谢。
jQuery的:
$('#menu li').click(function() {
$('div', this).stop(true, true).animate({ 'height': 'toggle' }, 300);
});
HTML:
<ul id="menu">
<li><a href="#">Menu 1</a>
<div id="submenu1">
<ul>
<li>Submenu 1</li>
</ul>
</div>
</li>
<li><a href="#">Menu 2</a>
<div id="submenu2">
<ul>
<li>Submenu 2</li>
</ul>
</div>
</li>
</ul>
CSS:
#submenu1, #submenu2 {
z-index: 99;
position: absolute;
background: #6fb700;
display: none;
}
答案 0 :(得分:1)
$('#menu li').click(function () {
$(this).siblings().children('div').hide();
$('div', this).stop(true, true).animate({ 'height': 'toggle' }, 300);
});
答案 1 :(得分:0)
试试这个
编辑缩短版本
$("#menu li").click(function() {
if($('div' , this).css('display') != 'block')
$("#menu li div.active").hide().removeClass('active');
$('div', this).addClass('active').stop(true, true).animate({ 'height': 'toggle' }, 300);
});
答案 2 :(得分:0)
尝试使用jquery选项卡执行此操作。垂直模式下的主菜单和默认模式下的子菜单 EX:Tabs UI
答案 3 :(得分:0)
扩展@silagy发布的内容:
$('#menu li').click(function() {
$("#menu li div.active").hide().removeClass('active');
$('div', this).addClass('active').stop(true, true).animate({ 'height': 'toggle' }, 300);
});
这只是添加了一个“活动”类,因此没有动画菜单项的双重动画。