事件冒泡和事件捕获,描述的是绑定在DOM元素上的事件在执行时的顺序。
事件冒泡:由内到外(自下而上),也就是,先执行子元素的事件,在执行子元素的父元素事件,依次执行,直至执行到根元素(节点)。
事件捕获:由外到内(自上而下),也就是,先执行父元素的事件,在执行父元素的子元素事件,依次执行,直至执行到最深层次的子元素(节点)。
在原生的JavaScript中,使用addEventListener(event,function,bool)函数进行事件的绑定,第一个参数(event)是绑定的事件类型,第二个参数(function(){})事件触发时执行的回调函数,第三个参数布尔类型定义是事件执行类型为事件冒泡(false)还是事件捕获(true)。
<html>
<head></head>
<body>
<div id="parent" style="50px;height:50px;background:red;">
<div id="child" class="child" style="20px;height:20px;background:blue;"></div>
</div>
<script>
document.getElementById("parent").addEventListener('click',function(e){
alert("parent=="+this.id);
},false);
document.getElementById("child").addEventListener('click',function(e){
alert("child=="+this.id);
},true);
</script>
</body>
</html>
第三个参数为false时,点击蓝色区域,alert()提示框出内容的顺序是:“child==child”,“parent==parent”
第三个参数为true时,点击蓝色区域,alert()提示框出内容的顺序是:“parent==parent”,“child==child”