DOM事件流

162 阅读2分钟

Dom事件流

定义

  1. DOM (文档对象模型)结构是一个树型结构,当一个 HTML 元素产生一个事件时,该事件会在元素节点与根结点之间的路径传播,路径所经过的结点都会收到该事件,这个传播过程可称为 DOM 事件流。
  2. 传播按顺序分为三个阶段:捕获阶段、目标阶段、冒泡阶段(事件流主要有这三个阶段)

具体解析

捕获阶段

事件的处理将从 DOM 层次的根开始,而不是从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递。在这个过程中,事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,如果事件监听器在被注册时设置了 useCapture 属性为 true (默认为 false 值): element.addEventListener(eventType, fn, useCapture)那么它们可以被分派给这期间的任何元素以对事件做出处理;否则,事件会被接着传递给派生元素路径上的下一元素,直至目标元素。

当前目标阶段

事件到达目标元素后,进入当前目标阶段,执行函数代码,之后它会接着通过 DOM 节点再进行冒泡。

冒泡阶段

当事件在某一 DOM 元素被触发时,例如用户在客户名字节点上点击鼠标,事件将跟随着该节点继承自的各个父节点冒泡穿过整个的 DOM 节点层次,直到它遇到依附有该事件类型处理器的节点。在冒泡过程中的任何时候都可以终止事件的冒泡(调用事件的 stopPropagation 方法),如果不停止事件的传播,事件将一直通过 DOM 冒泡直至到达文档根。

图片解析

1.jpg