我使用类似的东西
$(img).bind('load',function(){
console.log('loaded');
});
显然它可以工作,但是当页面从缓存加载图像时 事件未被触发。
我该如何解决这种情况?
答案 0 :(得分:4)
如果图像被缓存,某些浏览器不会触发此事件,要解决此问题需要检查.complete
属性,如下所示:
$("img").one('load',function(){
console.log('loaded');
}).each(function() {
if(this.complete) $(this).load();
});
.one()
确保它不会触发两次,.each()
部分会手动触发未自行执行load
事件的缓存图像的事件。
答案 1 :(得分:1)
Fount it! 每个图像都有一个.complete属性(布尔值)所以我只需要在绑定一个加载事件之前检查它。