这个问题说的专业一点就是jquery、js的冒泡事件,上网搜了老半天才搞好
比如:
<ul id="ul1">
<li>列表一
<ul id="ul2">
<li><a href="" target="iframe">功能一</a></li>
<li><a href="" target="iframe">功能二</a></li>
</ul>
</li>
<li>列表二
<ul id="ul2">
<li><a href="" target="iframe">功能一</a></li>
<li><a href="" target="iframe">功能二</a></li>
</ul>
</li>
</ul>
描述:内层的ul(ul2)默认是不显示,比如给外层的《li》写的点击事件,点击后内层ul显示,再次点击内层ul消失,如果此时点击内层的《li》,也会触发外层《li》的点击事件,导致内层的ul消失(理论上只让外层的《li》触发事件,点击内层《li》无效果),这就是传说中的冒泡事件,要解决这个问题也不难,阻止它就好了,有3种情况
1、return false;阻止了冒泡事件,也阻止了标签的默认事件(比如a标签的跳转)
例如:
$("#ul2").children("li").click(function(){
return false;
});
2、even.stopPropagation(); 阻止冒泡事件,但是不阻止标签默认事件
例如:
$("#ul2").children("li").click(function(e){
e.stopPropagation();
});
3、even.preventDefault();不阻止冒泡事件,但是阻止标签的默认事件
例如:
$("#ul2").children("li").click(function(e){
e.preventDefault();
});