2012-03-13 87 views
1

我有兩個<img> S:在jQuery中加載所有圖像?

<img src="photo1.png"> 
<img src="photo2.png"> 

,我希望它運行時兩者的裝載完畢的功能。

$("img").load(blah); 
function blah(e){ 
    var blah = "text"; 
} 

但它不起作用。它觸發兩次,因爲jQuery分別添加onload<img> s,這不是我想要的。

那麼我該怎麼做呢?請幫忙。

+0

你可以用'$( 「#1」)的負載($( 「#2」)的負載(等等));'將它們添加ID爲 「1」。和「2」。它的醜陋,而且大多數人不喜歡它,這就是爲什麼我張貼評論,不想被下調到地獄。 – Kedor 2012-03-13 01:13:12

+0

@Kedor,我不得不承認它......是的,這很醜陋。 – 2012-03-13 01:20:06

回答

5

,您可以嘗試:

var imgs = $('img'); 
var imgs_count = imgs.length; 
var imgs_loaded = 0; 

imgs.load(function() { 
    imgs_loaded++; 

    if(imgs_loaded === imgs_count) { 
     alert('All loaded!'); 
    } 
}); 
+1

即使瀏覽器從緩存中加載圖像,而不是從服務器上下載圖像,這種方式是否還能正常工作? – maxedison 2012-03-13 01:14:19

+1

你可以在這裏看到一個[live example](http://jsfiddle.net/bRzbj/)。 @ maxedison:是的,但是你需要把代碼放在''(當然是在'$()'裏面!)。 **編輯**:如果您需要,也可以查看「ImgElement.complete」數據。 – 2012-03-13 01:15:33