IE的事件传递-event.cancelBubble示例介绍

  关于event.cancelBubble,由于HTML中的对象都是层次结构,比如一个Table包含了多个TR,一个TR包含了多个TD

  Bubble就是一个事件可以从子节点向父节点传递,比如鼠标点击了一个TD,当前的event.srcElement就是这个TD,但是这种冒泡机制使你可以从TR或者Table处截获这个点击事件,但是如果你event.cancelBubble,则就不能上传事件。

  例子:

  

复制代码 代码如下:

  <html>

  <body>

  <table border="1" width="26%" id="tableA" onclick="alert('tableA')">

  <tr onclick="tableA_rowA_click()">

  <td width="106">一般</td>

  </tr>

  <tr onclick="tableA_rowB_click()">

  <td width="106">阻止消息上传</td>

  </tr>

  </table>

  <p> </p>

  </body>

  </html>

  <!-- -->

  <script language="javascript">

  <!--

  function tableA_rowA_click(){

  alert('tableA_rowA');

  }

  function tableA_rowB_click(){

  alert('tableA_rowB');

  event.cancelBubble=true;

  }

  //-->

  </script>

  event.cancelBubble阻止事件冒泡,event.cancelBubble=true;

  取消事件冒泡,在 IE 的事件机制中,触发事件会从子元素向父元素逐级上传,就是说,如果子元素触发了单击事件,那么也会触发父元素的单击事件;event.cancelBubble=true;可以停止事件继续上传补充一点,Ie的事件传递是从下到上的: