我有一个无序列表作为左侧导航,其中有很多链接。大多数列表项都有另一个无序列表作为与之关联的子菜单。但是,一些链接没有子菜单。我想禁用具有子菜单的链接的默认单击行为,以便我可以打开子菜单动画。但在没有子菜单的链接上,我需要链接可点击。我必须这样做的javascript是:
$(function(){
if($("#leftNav ul:first > li > a").siblings().size() > 0){
$("#leftNav ul:first > li > a").click(function(e){
e.preventDefault();
});
}
问题是这会禁用所有链接的默认点击行为,而不仅仅是具有兄弟姐妹的链接。左侧导航的 html 看起来像这样
<div id="leftNav">
<ul>
<li>
<a href="#">Link 1</a>
<ul>
<li><a href="#">Submenu Link 1</a></li>
<li><a href="#">Submenu Link 2</a></li>
<li><a href="#">Submenu Link 3</a></li>
</ul>
</li>
<li><a href="#">Link 2</a></li>
</ul>
</div>
因此需要在链接 1 上删除点击行为,因为它具有<ul>
同级。链接 2 没有兄弟姐妹,因此应该单独放置。