侦听任何元素上的非冒泡事件

Listen for non-bubbling events on any element

提问人:LuisAFK 提问时间:12/22/2022 更新时间:12/22/2022 访问量:31

问:

有没有办法在 DOM 树中的任何元素上侦听非冒泡事件?

我想侦听创建和加载的任何映像上的事件,而不必向每个映像添加事件(这也不起作用,因为可以随时创建新映像)。load

有什么办法可以做到这一点吗?

JavaScript Onload 事件冒泡

评论

1赞 Randy Casburn 12/22/2022
document.querySelector('body').addEventListener('load', el=>{if (el.tagName === "IMG") { /* do something with the image load */ }...}, true< - 在“捕获”阶段而不是“气泡”阶段聆听。
0赞 LuisAFK 12/22/2022
@RandyCasburn将其作为答案发布,我会接受它,因为它效果很好

答:

2赞 Randy Casburn 12/22/2022 #1
  1. 为 load 事件添加事件侦听器
  2. 检查 tagName 是否为 IMG
  3. 您可以通过将第二个参数 设置为 true 来使用事件生命周期的捕获阶段。.addEventListener()
document.querySelector('body')
  .addEventListener('load', el => {
      if (el.tagName === "IMG") { /* do something with the image load */ }
    }, true);