DOM事件
什么是DOM事件?
当我们在网页上操作的时候,比如当我们点击一个DOM元素,在键盘上按下按键,在输入框输入内容,当页面加载完成,这些都会触发DOM事件
事件流
什么是事件流呢?
事件流就是DOM事件的处理执行的过程。W3C中对DOM事件流有明确的定义。
(图片来自于W3C文档https://www.w3.org/TR/uievents/#dom-event-architecture)
如图,这是一棵DOM树,分为了三个部分:DOM树的顶端是window对象,接下来是document对象,在最底层,当我们点击后,就会产生一个click事件,事件传递过程如下
- capture phase
这个是事件的捕获过程,从window开始直到捕获到触发这个事件的节点的父元素,也就是图片上的tr。 - target phase
接下来这个目标节点也就是这个事件的触发过程。 - bubble phase
这个是冒泡过程,从当前事件节点的父节点开始冒泡到顶层的window对象
注意的几点:
1. 低版本IE不能很好的实现这个过程,没有捕获过程
2. 并不是所有事件都有这三个过程