js事件机制的理解

js事件机制

js事件的发生包括捕获和冒泡两个阶段

捕获:从最外边元素节点传递至发生事件的元素节点,即由外到内;
冒泡:从发生事件的元素节点传递至最外边元素节点,即由内到外;
js事件是先捕获阶段到冒泡阶段,即从最外层依次到发生事件的元素节点,再由发生事件的元素节点到最外面元素节点。但由于IE8及其低版本不支持捕获事件,所以现在很多事件都是在冒泡中进行事件处理的。

举个例子来说

	<div class="box1">
    	box1
    	<div class="box2">
        	box2
        	<div class="box3">box3</div>
    	</div>
	</div>
	.box1{
        width:300px;
        height:300px;
        background:#ccc;
        position:absolute;
    }
    .box2{
        width:200px;
        height:200px;
        background:skyblue;
        position:absolute;
        top:50px;
        left:50px;
    }
    .box3{
        width:100px;
        height:100px;
        background:blanchedalmond;
        position:absolute;
        top:50px;
        left:50px;
    }
	let box = document.getElementsByTagName("div");
    let box1 = box[0];
    let box2 = box[1];
    let box3 = box[2];
    box1.onclick=function(){
        console.log("box1被点击了。。。");
    };
    box2.onclick=function(){
        console.log("box2被点击了。。。");
    };
    box3.onclick=function(){
        console.log("box3被点击了。。。");
    };

浏览器展示
在这里插入图片描述
控制台输出结果
在这里插入图片描述

1. 捕获阶段

如上面的例子,在.box3被点击的时候,js 会从文档的最上层开始,由外向内寻找点击事件的起源,也就是 .box3。那么这个由外向内的过程就是 .box1 --> .box2 --> .box3,这三个 div 的 click 事件按照这个过程依次被触发。
这个触发的方向就是捕获的方向。

2. 冒泡阶段

在找到被点击的 .box3 之后,事件向上传递,过程是 .box3 --> .box2 --> .box1,此时依次触发.box3、.box2、.box1 的 click 事件,这个由内向外的触发过程就称为冒泡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值