2011-08-04 145 views
0
不工作

我有以下代码预加载图像:图像预加载在IE

preloader : function(images) { 
     var imgCount = images.length; 
     var counter = 0; 
     $.each(images, function(i, n) { 
      alert('hi'); 
      // load each image 
      $("<img />").attr("src", n).load(function() { 
       counter++; 
       if(imgCount == counter) { 
        $('#loader').hide(); 
        $('#wheel').show(); 
       } 
      }); 
     }); 
    } 

这我打电话,像这样:

preloader(['../images/image1.png','../images/image2.png','../images/image3.png']); 

它工作正常,在Firefox,但在IE它不没有工作。我得到所有3个警报,以便每个循环都运行,但它只加载第一个图像。如果我只输出数组中的一个图像,我将进入最终的if语句,并显示并隐藏div。但是,不止一个图像和Ie旅行了。正如我所说这在FF工作正常,所以它不是一个图像或图像路径丢失等问题等。

任何想法?我真的很难过这个。

+1

为什么你认为''''对象在'$ .each'迭代中存活? –

+0

我只是假设它会......不是吗?这是问题吗?如果是这样,我不知道如何解决。有任何想法吗? –

回答

1

我一直使用这个梦幻般的插件:http://flesler.blogspot.com/2008/01/jquerypreload.html

$.preload([ 'red', 'blue', 'yellow' ], { 
    base:'images/colors/', 
    ext:'.jpg' 
}); 

除了这个事实,这是很好的编码 - 有与堆载预压,即图像的问题,这个插件涉及。