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

it2023-12-25  63

一、定义

事件冒泡: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)

 

 

 

最新回复(0)