【问题标题】:jquery load event sometimes dont work, why?jquery加载事件有时不起作用,为什么?
【发布时间】:2010-04-06 18:04:09
【问题描述】:

我用这样的东西

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

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

我该如何解决这种情况?

【问题讨论】:

    标签: jquery events load


    【解决方案1】:

    如果图像被缓存,则在某些浏览器中不会触发此事件,要解决此问题,您需要检查 .complete 属性,如下所示:

    $("img").one('load',function(){
           console.log('loaded');
    }).each(function() {
      if(this.complete) $(this).load();
    });
    

    .one() 确保它不会触发两次,.each() 部分是手动触发缓存图像的事件,这些图像本身没有执行load 事件。

    【讨论】:

    【解决方案2】:

    找到了! 每个图像都有一个 .complete 属性(布尔值),所以我只需要在绑定加载事件之前检查它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      相关资源
      最近更新 更多