冒泡可用于图像加载事件吗?

20 javascript onload event-bubbling dom-events

我可以用吗:

window.addEventListner();
Run Code Online (Sandbox Code Playgroud)

某种程度上来说.

我的所有图片都有display = 'none'.

图像加载后,

我想设置 display = 'inline'

这样我可以规范化下载图像时显示的内容.

在这种情况下,我无法预加载我的图像.

myf*_*myf 54

在某些DOM节点上使用捕获事件侦听器window(body或其他感兴趣的图像元素的父节点):

document.body.addEventListener(
    'load',
    function(event){
        var tgt = event.target;
        if( tgt.tagName == 'IMG'){
            tgt.style.display = 'inline';
        }
    },
    true // <-- useCapture
)
Run Code Online (Sandbox Code Playgroud)

有了这个,您不必在迭代时(重新)附加事件处理程序document.images.

这也适用于动态插入的图像.

对于图像的error加载事件也是如此.MDN:addEventListener

  • @ user1637281这应该是公认的答案 (2认同)

bfa*_*tto 14

load/ onload事件没有做泡泡(参考,参考),所以你要问的是不可能的.您必须将事件处理程序附加到每个图像节点.