繁体   English   中英

向 html dom 元素的所有子节点发出事件

[英]emit events to all child nodes of a html dom element

我需要向元素的所有深层子节点发出事件。 我正在寻找的是使用自定义事件或等效的事件捕获。

解决方案之一是递归循环遍历所有子节点,然后向每个子节点发出事件,但速度较慢。

有没有更好的解决方案?

不确定深层子节点是什么意思,但querySelectorAll可以从根节点开始选择任何嵌套级别的所有元素:

 const elems = root.querySelectorAll("*") const customEvent = new CustomEvent('custom') elems.forEach(el => { el.addEventListener("custom", (e) => console.log("Custom event received on element:", e.currentTarget)) el.dispatchEvent(customEvent) })
 <div id="root"> <button>B1</button> <p>P1</p> <div> <p>P2</p> <p>P3</p> <button>B2</button> </div> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM