写了一个左侧导航的菜单,父菜单元素为li,子节点元素也为ul>li,当给父节点的li绑定click事件执行toggle()函数时,发现点击子节点的li标签也会执行toggle函数。由此造成事件冒泡。
解决方法:
在绑定click事件的函数后添加return false即可解决事件冒泡的问题,代码如下:
$('.api_left').find('li').live('mouseover',function(){ //父节点li
$(this).css('cursor','pointer');
}).live('mouseout',function(){
$(this).css('cursor','');
}).live('click',function(){
$(this).find('>ul').toggle();
return false; //解决事件冒泡
});
<div class = "api_left">
<ul>
<li>
<span style="vertical-align:top;">平台介绍</span>
<ul style="display:none;"> <!--子菜单-->
<li><a>平台描述</a></li>
<li><a>平台描述</a></li>
</ul>
</li>
</ul>
</div>