zoukankan      html  css  js  c++  java
  • 事件捕获和事件冒泡

    一. 事件的传播分为三个阶段

    1. 捕获阶段(capture phase)从外向内:在捕获阶段时从最外层的祖先元素(window对象),向目标元素进行事件的捕获,但是默认此时不会触发事件

    2. 目标阶段(target phase):事件捕获到目标元素,捕获结束开始在目标元素上触发事件

    3. 冒泡阶段(bubble phase)从内向外:事件从目标元素向他的祖先元素传递,依次触发祖先元素上的事件;(通俗来讲就是元素A中有子元素B,B元素的事件触发了,那么A元素相同的事件也会触发)

    二. addEventListener的第三个参数

    网景 和 微软 曾经的战争还是比较火热的,当时, 网景主张捕获方式,微软主张冒泡方式。后来 w3c 采用折中的方式,平息了战火,制定了统一的标准——先捕获再冒泡。
    addEventListener的第三个参数就是为冒泡和捕获准备的.
    addEventListener有三个参数:

    element.addEventListener(event, function, useCapture)

    第一个参数是需要绑定的事件
    第二个参数是触发事件后要执行的函数
    第三个参数默认值是false,表示在事件冒泡阶段调用事件处理函数;如果参数为true,则表示在事件捕获阶段调用处理函数。

    三. 注意事项

    父元素跟内嵌的iframe触发的事件毫无关系。比如:点击了iframe中的按钮,事件只会在iframe中传播父元素是收不到事件的,无捕获无冒泡。

    作者:dlm17
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    053-649
    053-648
    053-647
    053-646
    053-645
    053-644
    053-643
    053-642
    053-641
    053-640
  • 原文地址:https://www.cnblogs.com/dlm17/p/12712360.html
Copyright © 2011-2022 走看看