事件流是描述页面接收事件顺序的概念。事件薯衫在元素节点间以特定顺序传播的过程称为 DOM 事件流。例如,当给一个 div 注册点击事件时:事件流包括三个阶段:1. 捕获阶段2. 当前目标阶段3. 冒泡阶段事件冒泡数祥腔是 IE 提出的概念,事件开始于最具体的元素,然后逐级向上传播至 DOM 最顶层节点。事件捕获则是由网景提出,从 DOM 最顶层节点开始,逐级向下传至最具体的元素。将石头投入水中,下降是事件冒泡的过程,从顶层至具体元素的捕获过程。之后产生气泡,从最低点至水面,即事件冒泡。事件在元素节点间以特定顺序传播的过程即 DOM 事件流。注意:在 JS 代码中,只能执行捕获或冒泡阶段之一。onclick 和 attachEvent 只能得到冒泡阶段。在 addEventListener(type, listener[, useCapture]) 函数中,第三个参数若为 true,表示在捕获阶段调用事件处理程序;若为 false(默认值),则在冒泡阶段调用。实际开发中,我们很少使用事件捕获,更倾向于关注事件冒泡。有些事件不支持冒泡,如 onblur、onfocus、onmouseenter、宴消onmouseleave。事件冒泡有时会引发问题,但也能巧妙地解决某些事件,我们稍后深入探讨。