2012-03-13 3 views
1

は、私は2人の<img>の持っている:jQueryのすべての画像onload?

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

を、私はそれが彼らの両方の読み込みが完了している機能を実行したいです。

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

しかし、動作しません。 jQueryはonload<img>を別々に追加するので、2回発生します。これは私が望んでいないものです。

どうすればいいですか?助けてください。

+0

あなたは '$( "#1")を使用することができ、負荷($( "#2")負荷(何とか)。);'それらを追加IDが "1"。 「2」である。その醜い、そしてほとんどのpplはそれを好きではないでしょう、それは私がコメントとして投稿している理由です、地獄にdownwotedしたくありません。 – Kedor

+0

@Kedor、私はそれを認めなければならない...はい、それは非常に醜いです。 –

答えて

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

+1

ここに[ライブサンプル](http://jsfiddle.net/bRzbj/)があります。 @maxedison:そうですが、 ''( '$()'の中にコードを置く必要があります!)。 **編集**:必要ならば、あなたは 'ImgElement.complete'データをチェックすることができます。 –

関連する問題