首页 > 解决方案 > 关于事件冒泡的本机 dom 事件持久性

问题描述

我不知道为什么我以前从未想过这个问题,但是原生 dom 事件的生命周期是多少。它们是否被重复使用以及如何重复使用,它们会过期吗?有没有办法像 React 合成事件一样冻结它们?更具体地说,我的意思是当他们通过 dom 冒泡时

简单测试:

<div onclick="setTimeout(() => { console.log(event.currentTarget)}, 0)">Test 1</div>
</div>


<div onclick="console.log(event.currentTarget)">Test 2</div>
</div>

与测试“测试 2”相比,运行“测试 1”表明当前目标为空。这只是举例说明我的更大问题的一个例子。

泰!

编辑:这是用https://codepen.io/rubixibuc/pen/qBbwRmo?editors=1111测试的代码笔

标签: javascript

解决方案


否 - DOM 事件不会被重用。每次都是一个新事件。如果您谈论的是在 DOM 树上冒泡的事件冒泡,那么是的,它是同一个事件对象。


推荐阅读