一、简介
事件流是一个事件沿着特定数据结构传播的过程。冒泡和捕获是事件流在DOM中两种不同的传播方法
事件流有三个阶段
- 事件捕获阶段
- 处于目标阶段
- 事件冒泡阶段
事件捕获
事件捕获(event capturing
):通俗的理解就是,当鼠标点击或者触发dom
事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件
事件冒泡
事件冒泡(dubbed bubbling
):与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点
示意图
二、W3C事件模型
因为有捕获和冒泡两种传播方式,W3C制定了一个标准可以让我们自己选择使用哪种传播方式addEventListener('click',fn,?)
第三个参数?
是一个bool
值,决定使用捕获或者冒泡
举个例子
<div>
<p>点我看效果</p>
</div>