• 事件捕获和事件冒泡


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

    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
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    33. 搜索旋转排序数组
    54. 螺旋矩阵
    46. 全排列
    120. 三角形最小路径和
    338. 比特位计数
    746. 使用最小花费爬楼梯
    spring boot的一些常用注解
    SSM整合Dubbo案例
    一些面试题
    Spring Aop和Spring Ioc(二)
  • 原文地址:https://www.cnblogs.com/dlm17/p/12712360.html
Copyright © 2020-2023  润新知