jquery load事件有时候不起作用,为什么?

时间:2010-04-06 18:04:09

标签: jquery events load

我使用类似的东西

$(img).bind('load',function(){
       console.log('loaded');
});

显然它可以工作,但是当页面从缓存加载图像时 事件未被触发。

我该如何解决这种情况?

2 个答案:

答案 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属性(布尔值)所以我只需要在绑定一个加载事件之前检查它。