请问您对DOM事件流是怎样理解的?

一.先说一下事件冒泡及事件捕获
1.事件冒泡:当触发了某个元素的某类型的事件,那么它的父级元素同类型的事件也会被触发。
依次类推直到最根的元素(HTML),就再也不冒泡了。
即从当前元素一直朝父级元素冒泡。
2.事件捕获:和事件冒泡的顺序相反。先触发根元素,再依次朝子元素进行触发,直到当前元素(真正的事件源)为止。

二、比较几种事件绑定的方式
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#grandpaDiv{
				width:400px;
				height:400px;
				background-color:red;
			}	
			#fatherDiv{
				width:300px;
				height:300px;
				background-color:yellow;
			}	
			#meDiv{
				width:200px;
				height:200px;
				background-color:pink;
			}	
		</style>
	</head>
	<body>
		<div id="grandpaDiv">
			<div id="fatherDiv">
				<div id="meDiv">
				</div>
			</div>
		</div>	
	</body>
</html>
<script type="text/javascript">

//DOM事件流:事件流就是事件的流向,共经历三个阶段,分别是
//1、第一个阶段:捕获阶段
//2、第二个阶段:事件源阶段
//3、第三个阶段:冒泡阶段。

//这是个u型。

function $(id){
	return document.getElementById(id);
}

window.onload = function(){
	//事件捕获	

	$("meDiv").addEventListener("click",function(){		
		console.log("我被点了");
	},true);
		
	
//事件冒泡

	$("grandpaDiv").addEventListener("click",function(){
		console.log("冒泡:爷爷被点了");
	},false);
	
	$("fatherDiv").addEventListener("click",function(){
		console.log("冒泡:爸爸被点了");
	},false);
	

	
	$("grandpaDiv").addEventListener("click",function(){
		console.log("捕获:爷爷被点了");
	},true);
	
	$("fatherDiv").addEventListener("click",function(){
		console.log("捕获:爸爸被点了");
	},true);

	
	

}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值