1

次の問題があります。index.html に 3 つの画像があります。

<div class = "someclass">
<img src = "1.jpg" title="jeeden"/>
<img src = "2.jpg" title="dwa"/>
<img src = "3.jpg" title="trzy"/>
</div>

それらをロードし、ロード中に-タイトルをjqueryの配列にプッシュするコードは次のとおりです。

var titletable = [];

$(document).ready(function() {

$("img").load(function(event){
titletable.push($(this).attr('atrybut1'));
});


$.each(titletable, function(i, v) {
$('.someclass').append("<li>" + i + ": " + v + "</li>");
}); 

$.each反復を関数に移動する.loadと、配列要素が表示されますが、間違った方法で、画像が読み込まれるたびに配列の状態が表示されます。titletable3 つの画像がすべて読み込まれるときの内容を表示したいと考えています。これどうやってするの?

4

1 に答える 1

1

あなたは.eachoutside.loadを実行していることに気づきます、そしてロードは通常後で起こります

var titletable = [];

$(document).ready(function() {
   var totalImages = $("img").length;
   var loadedImages = 0;

   $("img").load(function(event){
       titletable .push($(this).attr('title'));
       loadedImages++; 

       if (loadedImages == totalImages)
           $.each(titletable, function(i, v) {
              $('.someclass').append("<li>" + i + ": " + v + "</li>");
           }); 
});

現在読み込まれている画像の数を保持し、すべての画像が読み込まれると、配列を使用します。

于 2012-04-24T14:18:44.027 に答える