事件流、事件冒泡、阻止冒泡

文章介绍了事件流中的两种模式——事件冒泡(从子元素到父元素)和事件捕获(从父元素到子元素),并展示了如何通过`event.stopPropagation()`阻止事件冒泡。还提到了同时使用捕获和冒泡的情况以及它们的执行顺序。
摘要由CSDN通过智能技术生成

1、事件流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、事件冒泡:从小到大

概念:
当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发。这一过程被称为事件冒泡

<style>
.father{
    width: 300px;
    height: 300px;
    background-color: pink;
}
.son{
    width: 100px;
    height: 100px;
    background-color: red;
}
</style>
<div class="father">
    <div class="son"></div>
</div>
<script>
    const father=document.querySelector('.father');
    const son=document.querySelector('.son');
    console.log(son);
    // 默认是冒泡:从小到大
    document.addEventListener('click',function () {
        alert('我是爷爷');
    });
    father.addEventListener('click',function () {
        alert('我是baba');
    });
    son.addEventListener('click',function () {
        alert('我是儿子');
    });

点击一个红色盒子
默认会出现冒泡事件:从小到大!
可以理解成海底压强大,气泡小,快到海平面时,压强小,气泡大。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、阻止冒泡:

在这里插入图片描述
例如:

son.addEventListener('click',function (e) {
    alert('我是儿子');
    e.stopPropagation();
});

点击一下:只会弹出儿子了,其他不再弹出
在这里插入图片描述

4、事件捕获:从大到小

// 捕获:如果同时加捕获和冒泡:那默认先捕获再冒泡
document.addEventListener('click',function () {
    alert('我是爷爷');
},true);
father.addEventListener('click',function () {
    alert('我是baba');
},true);
son.addEventListener('click',function () {
    alert('我是儿子');
},true);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意点:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值