2012-12-13 55 views
0

我正试图检测一组图像何时加载了div。检查加载的图像jQuery

if($("#venues-page").get(0)) { 
    var img = $('#venues-page .venues img'); 
    var length = img.length; 
    img.load(function(){ 
     length--; 
     console.log(length); 
     if(length === 0){ 
      console.log("here"); 
      $(".lattice").fadeIn(1000); 
      $("#venues .venue a").css("display", "block"); 
      $("#venues-page .venues img").not('.lattice').fadeIn(500); 
     } 
    }); 
} 

这似乎的图像时,在浏览器缓存,但是如果用户没有造访的网站之前的图像刷新后刷新后,似乎永远都没有负荷刷新做工精细。

有没有更好的方式来确保所有的图像都加载在一个div中,并且基于这些做的东西?

+0

我可以想象问题是在执行回调时未定义'length' var - 尝试使用全局变量并对其进行测试 – ManseUK

+0

查看http://stackoverflow.com/questions/12905038/中的答案jQuery的替代到bindload用型与 - 图像 – Nelson

回答

0

您可能会在这里缺少一些代码。

1)你的代码应该

$(function(){ 


}); 

2)替代

img.load(function() { 

下包裹尝试

img.one("load", function() { 
OR 
img.on("load", function() { 

我试着用你的代码,它工作得很好。如果您仍然遇到任何问题,请告诉我。