动态加载图像的 JQuery .on() 事件处理程序使用

Lev*_*sız 5 html ajax jquery

我的页面是通过 ajax 响应动态生成的。

每个响应都有一个img具有指定 id的元素。我需要它们在加载时淡入。

.load()并且.bind('load')在第一次加载页面时工作正常。但肯定不会在下一个响应中工作。

$('#my_img').load(function(){
   $(this).hide().fadeIn('slow');
});
Run Code Online (Sandbox Code Playgroud)

所以我需要使用.on()事件处理程序。但不起作用。

$('body').on('load','#my_img',function(){
   $(this).hide().fadeIn('slow');
});
Run Code Online (Sandbox Code Playgroud)

注意:这不是缓存问题。img src 也有一个随机查询字符串。

A. *_*lff 4

onload事件不会冒泡,因此您不能委托它。但是,如果您不需要支持 IE8<,您可以捕获事件,这适用于任何动态 img:

document.body.addEventListener(
    'load',
    function(event){
        var elm = event.target;
        if( elm.id === 'my_img'){ // or any other filtering condition
            // do some stuff
        }
    },
    true // Capture event
);
Run Code Online (Sandbox Code Playgroud)

-演示-