不太清楚这个标题对不对。问题是这样的:
<div onclick="alert('div')">
<p onclick="alert('p111')">abcdefg</p>
<br/>
<p onclick="alert('p222')">pppp</p>
</div>
最底层的div 响应onclick时会弹出 div, 里面的两个p子节点分别弹出"p111" 和 "p222"。
如果我点击空白出就只响应div的。但如果点p的话,就会先响应p然后又响应div。
想知道有没有方法可以让事件只作用于最上层。 也就是说如果点 p的话,div的方法不会蹦出来。
事件
响应顺序
------解决方案--------------------
阻止冒泡 你查下
------解决方案--------------------
<div onclick="fun('div',event)">
<p onclick="fun('p111',event)">abcdefg</p>
<br/>
<p onclick="fun('p222',event)">pppp</p>
</div>
<script type="text/javascript">
function fun(str,e){
e = e
------解决方案--------------------
window.event;
e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;//阻止冒泡
alert(str);
}
</script>