事件的冒泡

151 阅读1分钟

事件的冒泡(Bubble)

所谓的冒泡指的就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发。
在开发中大部分情况冒泡都是有用的,如果不希望发生事件冒泡可以通过事件对象来取消冒泡
将事件对象的cancelBubble设置为true,即可取消冒泡

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			#box1{
				width: 200px;
				height: 200px;
				background-color: #bfa;
			}
			#span1{
				background-color: yellow;
			}
		</style>
	</head>
	<body>
		<div id=box1>
			我是div
			<span id="span1">
				我是div中的span
			</span>
		</div>
	</body>
	<script>
		//为span1绑定一个单击响应函数
		var span1=document.getElementById("span1");
		span1.onclick=function(event){
			event=event || window.event;
			alert("我是span的单击响应函数");
			//取消冒泡
			event.cancelBubble=true;
		};
		//为box1绑定一个单击响应函数
		var box1=document.getElementById("box1");
		box1.onclick=function(event){
			event=event || window.event;
			alert("我是div的单击响应函数");
			//取消冒泡
			event.cancelBubble=true;
		};
		//为body绑定一个单击响应函数
		document.body.onclick=function(){
			alert("我是body的单击响应函数");
		};
	</script>
</html>