JavaScript-DOM-事件冒泡
事件的冒泡(Bubble)
所谓的冒泡就是事件自下而上的响应,当后代元素的事件被触发时,其祖先元素的相同事件也会被触发。在开发中大部分情况下事件冒泡都是有用的,如果不希望发生事件冒泡,可以通过将事件对象属性cancelBubble设置为true来取消冒泡。
用一张图来描述更清晰:
实例-点击事件逐层触发
运行下面这个完整例子来感受一下事件如何冒泡吧!
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>DOM-事件冒泡示例</title>
<script>
window.onload = function(){
document.body.onclick = function(){
alert('我是body!');
}
let box1 = document.getElementById('box1');
box1.onclick = function(){
alert('我是div!');
}
let span1 = document.getElementById('span1');
span1.onclick = function(event){
event = event|| window.event;
// 取消冒泡:通过设置事件对象的cancelBubble属性
// event.cancelBubble = true;
alert('我是span!');
}
}
</script>
<style>
#box1{
height: 200px;
width: 200px;
background-color: antiquewhite;
}
#span1{
background-color: aqua;
}
</style>
</head>
<body>
<div id="box1">
div区域
<span id="span1">span区域</span>
</div>
</body>
</html>