事件冒泡的应用

事件执行的三个阶段

  • 捕获阶段
  • 当前目标阶段
  • 冒泡阶段
    当我们为子元素添加事件之后,点击子元素之后,父元素捕获到事件判断是不是自己触发的(捕获)。不是就传递给子元素,然后执行回调函数,接下来子元素抛出事件(冒泡),父元素再抛出事件。这就是事件执行的流程。
注意点

三个阶段只有2个阶段会被同时执行,要么捕获和当前要么当前和冒泡
(也可以理解为,父元素和子元素中的回调函数执行的顺序。当我们点击子元素的时候,父元素算不算被点击。当然算啦那么我点击子元素之后,我先执行父元素的回调函数再执行子元素的就是捕获,先执行子元素的回调函数再执行父元素的就是冒泡。这个理解,我好像是在CSDN中看见某位博主的,记不得名字啦,抱歉啦)

案例

就是在ul里5个li,原始状态就是第一个li是被选中的状态。当我鼠标点击第二个li时,第二个li变成被选中的状态,第一个li则不是


开始状态.png

上代码

let oUl=document.querySelector("ul");
    let oLi=document.querySelector(".selected");
    console.log(oLi);
    oUl.onclick=function (event){//onclick,默认是冒泡
        event= event|| window.event;//兼容处理
        // console.log(event.target); event.target的作用就是拿到点击的子元素
        oLi.className="";
        event.target.className="selected";
        oLi=event.target;
    }

当我们点击子元素的时候,父元素捕获发现不是自己触发的,就传递给子元素,然后看看自己被设置的是捕获还是冒泡。冒泡耶,先执行子元素的回调函数,子元素没有然后我在执行父元素的函数。(onXxx,默认是冒泡)
代码理解

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 例子: 为了使点击li时不管是原来的还是新增的li都有绑定事件(控制台输出内容)方法一: 这个方法是一般的事件绑定...
    从前慢pearl阅读 2,425评论 0 0
  • js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...
    道无虚阅读 7,315评论 0 2
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,922评论 1 11
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 5,278评论 0 8
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,734评论 0 21

友情链接更多精彩内容