關於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的事件傳遞是從下到上的: