DOM事件流(event flow )分为以下三个阶段:
事件捕获阶段 事件捕获(event capturing):意思是当鼠标点击或者触发dom事件的时候,浏览器会从这个事件的元素根节点开始一层一层的传播至当前元素,即我们触发了这个元素,如果它的父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件。 处于目标阶段 事件到达目标节点时,就到了目标阶段,事件在目标节点上被触发 事件冒泡阶段 事件冒泡(dubbed bubbling):与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点,也就是说从目前元素开始一级一级往上进行事件传播。
dom标准事件流的触发的先后顺序为:先捕获再冒泡,即每当我们进行事件触发的时候,先进行捕获事件的触发,再进行冒泡。目前除IE10及以下不支持捕获型事,其他浏览器如IE11、Chrome 、Firefox、Safari等浏览器则同时存在。
不支持冒泡的事件有 UI事件 load, unload,scroll,resize 焦点事件 blur, focus 鼠标事件 mouseleave, mouseenter
支持冒泡的事件有 点击事件 click ,dbclick , 键盘事件 keydown ,keyup , 鼠标事件 mousedown ,mousemove ,mouseout ,mouseover ,mouseup ,scroll
|