事件流
事件流描述了页面接收事件的顺序。
1.事件冒泡(IE事件流)
事件被定义为从最具体的元素(文档树中最深的节点)开始触发,然后向上传播至没有那么具体的元素(文档)。事件沿DOM 树一路向上,在经过的每个节点上依次触发,直至到达 document 对象。
直接在对应方法中使用event.stopPropagation()便可阻止事件冒泡。
2.事件捕获(Netscape事件流)
最不具体的节点应该最先收到事件,而最具体的节点应该最后收到事件。事件捕获实际上是为了在事件到达最终目标前拦截事件。
由于旧版本浏览器不支持,因此实际当中几乎不会使用事件捕获。通常建议使用事件冒泡,特殊情况下可以使用事件捕获。
3.DOM事件流
DOM2 Events 规范规定事件流分为 3 个阶段:事件捕获、到达目标和事件冒泡。事件捕获最先发生,为提前拦截事件提供了可能。然后,实际的目标元素接收到事件。最后一个阶段是冒泡,最迟要在这个阶段响应事件。