4
我用这个问题的代码,以显示/隐藏切换jQuery的.toggle()来显示和隐藏子子菜单
jQuery .toggle() to show and hide a sub-menu
$('#menu-lateral .sub-menu').hide(); //Hide children by default
$('#menu-lateral > li > a').click(function() {
event.preventDefault();
$(this).siblings('.sub-menu').slideToggle('slow');
});
的问题是,我的子菜单有自己的子菜单,其中有很多项目。有没有办法让这个代码在下一个层次上也可以工作?
重要信息:wordpress默认使用同一个类的子UL,所以都是.sub-menu。
像:
<ul id="menu-lateral" class="menu">
<li id="menu-item-29"><a href="#">Parent Level 1</a>
<ul class="sub-menu">
<li id="menu-item-108"><a href="#">Parent Level 2</a>
<ul class="sub-menu">
<li id="menu-item-104"><a href="#">Element</a></li>
</ul>
</li>
</ul>
</li>
</ul>
小提琴:http://jsfiddle.net/qfygM/1/
感谢您的帮助!
UPDATE:该解决方案可以在这里找到>>http://jsfiddle.net/qfygM/7/
由天顶而成。
$('#menu-lateral .sub-menu').hide(); //Hide children by default
$('#menu-lateral li a').click(function(event){
if ($(this).next('ul.sub-menu').children().length !== 0) {
event.preventDefault();
}
$(this).siblings('.sub-menu').slideToggle('slow');});
哇,太棒了!谢谢你的回答! – tibelchior
现在的问题是子菜单是不可点击的。 我研究过,问题与event.preventDefault(); 有没有一种方法可以在没有孩子的按钮中启用它? 如果需要,我可以向父母和孩子添加不同的课程。 感谢您的关注。 – tibelchior
我的意思是这里http://jsfiddle.net/qfygM/2/中的“元素”不再链接到页面。我点击它并没有重定向到URL。 – tibelchior