我基本上有这个标记:
<div class="navBar">
<div class="inner blueTheme">
<ul id="" class="navBarMenu">
<li class="xenonActiveMenu blue"><a href="/new_order">Orders</a>
<ul>
<li class="backBtn"><a href="#">< Back</a>
</li>
<li class="xenonActiveMenu "><a href="/new_order">New Order</a>
</li>
</ul>
</li>
<li class="green"><a href="/account_details">Profile</a>
<ul>
<li class="backBtn"><a href="#">Back</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
查询:
$('.navBar .inner ul > li').bind('click', function(e){
e.preventDefault();
item = $(this);
if (item.attr('class') != 'selected' && item.attr('class') !='backBtn') {
item.addClass('selected');
var parent = item.parent();
var barWidth = item.width();
var hasSub = item.find('ul').length;
if (hasSub > 0 ){
//Item Does have a submenu
parent.children().each(function(){
$(this).animate({marginLeft: -barWidth}, 400);
});
}
} else {
var parent = $(this).parent().closest('li');
var barWidth = $(this).width();
parent.each(function(){
$(this).animate({marginLeft: barWidth}, 400);
});
}
});
我的问题是,它认为“li”元素被点击了两次,因为嵌套的 LI 元素有两个单独的函数,我只是不知道解决方法,有人可以帮忙吗?
香农