日期:2014-05-16  浏览次数:20394 次

新手 求教一个事件 的父子继承关系的问题
不太清楚这个标题对不对。问题是这样的:


 <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>