【新手案例】多层标签嵌套的事件绑定和传播顺序

本文详细阐述了HTML中事件传播的两种方式:冒泡事件与捕获事件,并通过实例代码展示了如何使用addEventListener函数来实现不同事件传播顺序的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多层标签嵌套的事件绑定传播顺序

1.普通绑定(冒泡事件):从子级向父级传播【常用】

2.监听绑定(捕获事件):使用addEventListener()函数第三参数设置为true可以将事件传播改为从父级向子级传播

  

案例实现代码: 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ChiHinTest</title>
</head>
<body>
<!--事件传播-->
<div align="center">
    <div id="a" style="display:inline-block;">
        冒泡事件
        <div id="div1" style="width: 150px;height:150px;background-color: cornflowerblue"
             align="center">
            div1
            <div id="div2" style="width: 100px;height:100px;background-color: chartreuse" align="center">
                div2
                <div id="div3" style="width: 50px;height:50px;background-color: chocolate" align="center">
                    div3
                </div>
            </div>
        </div>
    </div>
    <div id="b" style="display:inline-block;">
        捕获事件
        <div id="div4" style="width: 150px;height:150px;background-color: blanchedalmond"
             align="center">
            div4
            <div id="div5" style="width: 100px;height:100px;background-color: chartreuse" align="center">
                div5
                <div id="div6" style="width: 50px;height:50px;background-color: cyan" align="center">
                    div6
                </div>
            </div>
        </div>
    </div>
</div>
    <script type="text/javascript">

        // 冒泡事件(从内向外执行)
        var div1 = document.querySelector("#div1");
        var div2 = document.querySelector("#div2");
        var div3 = document.querySelector("#div3");
        div1.addEventListener("click", function () {
            console.log('卧槽你点我1')
        });
        div2.addEventListener("click", function () {
            console.log('卧槽你点我2')
        });
        div3.addEventListener("click", function () {
            console.log('卧槽你点我3')
        });

        // 捕获事件(从外向内执行)
        var div4 = document.querySelector("#div4");
        var div5 = document.querySelector("#div5");
        var div6 = document.querySelector("#div6");
        div4.addEventListener("click", function () {
            console.log('卧槽你点我4')
        }, true);
        div5.addEventListener("click", function () {
            console.log('卧槽你点我5')
        }, true);
        div6.addEventListener("click", function () {
            console.log('卧槽你点我6')
        }, true);
    </script>
</body>
</html>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值