這個問題說的專業一點就是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();
});