JS-事件机制(捕获,冒泡)

一、事件流:
       冒泡流:事件“由底向上”传播。
       捕获流:事件“由上向底”传播。
       阶段:

  • 捕获阶段
  • 目标阶段
  • 冒泡阶段

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="a" style="width: 500px;height: 500px;background-color: aliceblue;margin: 0 auto">
        <div id="b" style="width: 400px;height: 400px;background-color: antiquewhite;margin: 0 auto">
            <div id="c" style="width: 300px;height: 300px;background-color: aqua;margin: 0 auto">
                <div id="d" style="width: 200px;height: 200px;background-color: aquamarine;margin: 0 auto">
                    <div id="e" style="width: 100px;height: 100px;background-color: azure;margin: 0 auto">

                    </div>
                </div>
            </div>
        </div>
    </div>
    <script>
        document.getElementById('a').addEventListener('click',function () {
            console.log("这是a捕获阶段");
        },true);
        document.getElementById('a').addEventListener('click',function () {
            console.log("这是a冒泡阶段");
        },false);
        document.getElementById('b').addEventListener('click',function () {
            console.log("这是b捕获阶段");
        },true);
        document.getElementById('b').addEventListener('click',function () {
            console.log("这是b冒泡阶段");
          }
        );

        document.getElementById('c').addEventListener('click',function () {
            console.log("这是c捕获阶段");
        },true);
        document.getElementById('c').addEventListener('click',function () {
            console.log("这是c冒泡阶段");
        },false);

        document.getElementById('d').addEventListener('click',function () {
            console.log("这是d捕获阶段");
        },true);
        document.getElementById('d').addEventListener('click',function () {
            console.log("这是d冒泡阶段");
        },false);

        document.getElementById('e').addEventListener('click',function () {
            console.log("这是捕e获阶段");
        },true);
        document.getElementById('e').addEventListener('click',function () {
            console.log("这是e冒泡阶段");
        },false);
    </script>
</body>
</html>

点击id=“c”时候的效果:
(蓝绿色那块为id=“c”)
addEventListener( , , ):第三个参数为:

  • true时:在捕获阶段处理调用事件处理程序
  • false时:在冒泡阶段处理调用事件处理程序
    在这里插入图片描述
    我们点击id=“c”的div标签时,事件从最外层的id=“a”向id=“c”开始传播,此时为捕获阶段。当捕获到id=“c”时,事件开始从最里层的id="c"开始向id="a"传播,此时为冒泡阶段。
    在这里插入图片描述
    由此可见:   捕获流是“由外向内”传播。而冒泡流是:“由内向外
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值