【js】事件冒泡、事件捕获的定义及应用

本文解析了事件冒泡与事件捕获两种不同的事件传播机制,并通过一个简单的HTML示例展示了这两种机制的工作方式。事件冒泡机制中,事件从最具体的元素开始触发,逐级向上传播至document对象;而在事件捕获机制中,事件则由document对象开始,逐级向下传播到具体的元素。

一、定义

事件冒泡:IE的事件流,即事件开始时由最具体的元素(文档嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(document)。

事件捕获:是不具体的节点更早接收到事件,而具体的节点应该最后接收到事件。

二、实例

<!DOCTYPE html>
<html onclick="console.log('c')">

<head>
    <meta charset="UTF-8" />
    <title>demo</title>
</head>

<body onclick="console.log('b')">
    <div id="myDiv" onclick="console.log('a')">click me</div>
    <script>
        document.onclick = function () {
            console.log('d')
        }
    </script>
</body>

</html>

点击元素 myDiv 的运行结果如下:

三、总结

事件冒泡:click事件会沿着DOM树向上传播(myDiv -> body -> html -> document),在每一级节点上都会发生,直至传播到document对象。IE9、Firefox、Chrome和Safari会将事件一直冒泡到window对象。

事件捕获:document对象首先接收到click事件,然后事件沿DOM树依次向下,一直传播到事件的实际目标div(document -> html -> body -> myDiv)

 

 

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值