JavaScript事件传播机制实例解析
作者:像素猫时间:2026-10-21 22:01:52浏览:407
本文通过具体的HTML与JavaScript代码实例,详细讲解了JavaScript中事件传播的机制。内容涵盖事件在DOM树中的传递顺序,包括从根节点向下传递的捕获阶段以及从目标节点向上传递的冒泡阶段,帮助开发者深入理解事件处理流程。
JavaScript事件传播机制实例解析
本文通过具体示例介绍JavaScript中事件传播的相关概念,供读者参考学习。
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#box1{
width: 300px;
height: 300px;
background-color: deepskyblue;
}
#box2{
width: 200px;
height: 200px;
background-color: cadetblue;
}
#box3{
width: 100px;
height: 100px;
background-color: chocolate;
}
</style>
<script type="text/javascript">
function bind(obj , eventStr , callback){
if(obj.addEventListener){
//如果是正常浏览器
obj.addEventListener(eventStr , callback , false);
}else{
//IE8
obj.attachEvent("on"+eventStr , function(){
callback.call(obj);
});
}
}
window.onload = function(){
/*
* 事件的传播
* - 关于事件的传播微软和网景公司有着不同的理解
* - 微软公司,认为事件应该是从后代元素向祖先元素传播,即从里向外传播,也就是我们所谓事件的冒泡
* - 网景公司,认为事件应该是从祖先元素向后代元素传播,即从外向里传播,这一阶段我们称为事件的捕获
* - W3C综合了两个公司的方案,将事件的传播分成了三个阶段
* 1.捕获阶段
* - 事件从最外层的元素(document),向目标元素进行事件的捕获
* - 此阶段默认不会触发事件
* 2.目标阶段
* - 目标指的是触发事件的元素,捕获到目标元素则捕获阶段停止
* 3.冒泡阶段
* - 事件从目标元素向祖先元素中冒泡,此时开始触发事件
* - 默认事件都是在冒泡阶段执行的
*
* - 事件都是默认在冒泡阶段执行的,一般不需要在捕获阶段触发事件,
* 如果希望在捕获阶段执行事件,则需要将addEventListener()的第三个参数修改为true
*
* - IE8及以下的浏览器没有捕获阶段,也不能设置在捕获阶段触发事件
*/
//分别为三个div绑定单击响应函数
var box1 = document.getElementById("box1");
var box2 = document.getElementById("box2");
var box3 = document.getElementById("box3");
bind(box1,"click",function(){
alert(1);
})
bind(box2,"click",function(){
alert(2);
})
bind(box3,"click",function(){
alert(3);
})
};
</script>
</head>
<body>
<div id="box1">
<div id="box2">
<div id="box3"></div>
</div>
</div>
</body>
</html>
以上即为本文关于事件传播机制的全部内容,希望这些知识能对读者的学习有所助益。
作者最新文章
js-cookie 安装与基础用法:set、get、remove 详解
2026-11-05 16:35:06
适合JavaScript初学者的实战项目:制作简易待办事项列表
2026-11-05 16:17:07
JS打开新标签页时怎么通过URL传递参数
2026-11-05 12:21:08
sigma.js 自定义节点样式:设置颜色、大小及标签显示的技巧
2026-11-05 09:55:00
JS 生成的统计图怎么导出为 PNG 图片或 PDF 文件?
2026-11-05 09:37:58
