我的页面是通过 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 也有一个随机查询字符串。
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)