js编程-DOM事件的传播机制

44 阅读1分钟

触发某个元素的某个事件行为时,一般分为三个阶段:

  • 1) 捕获阶段 (CAPTURING_PHASE)
  • 2)目标阶段 (At_TARGET)
  • 3)冒泡阶段 (BUBBLING_PHASE ) 捕获阶段:从最外层元素一直向里逐级查找,直到找到事件源为止 目的:为冒泡阶段 的传播提供路径 ==》ev.path存放的就是捕获阶段收集的传播路径

目标阶段:把当前事件源的相关事件行为触发

冒泡阶段: 按照捕获阶段收集的传播路径,不仅仅当前事件源的相关事件行为被触发,而且从内到外,其祖先所有元素的相关事件行为也都会触发(如果做了事件绑定,绑定的方法也会执行)

DOM0级事件绑定中给元素事件行为绑定方法,都是在目标阶段/冒泡阶段触发的。 DOM2级事件绑定可以控制在绑定的方法在捕获阶段触发。 + 元素.addEventListener(【事件】,【方法】, false/true) + 默认为false,控制方法在冒泡阶段触发,如果设置为true可以控制在捕获阶段触发执行。

ev.stopPropagation ? ev.stopPropagation() : ev.cancleBuddle = true