时间:2021-05-28
关于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的事件传递是从下到上的:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
cancelBubble在IE下有效stopPropagation在Firefox下有效复制代码代码如下:阻止JavaScript事件冒泡传递(cancelBu
event是ie自带的一个对象,而ff中不存在该对象,只能通过传递参数的方式来模拟event另外ie中使用srcElement去获得事件触发源,ff下使用tar
Event对象:(event对象是window对象的属性,当事件发生时,同时产生event对象,事件结束,event对象消失)IE中:window.event;
比如,停止事件冒泡IE用cancelBubble,标准浏览器则用stopPropagation。获取事件源对象,IE用srcElement,标准浏览器则用tar
window.event对象差异IE:有window.event对象FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmou