2017-01-18 4 views
-1

文書がロードされているときのimgsの高さを知るプロジェクトがありますが、最初は高さがゼロになっています。imgsが既にロードされているかどうかを知るヒントはありますか?私は$ .deferredをjQueryの中で使用しようとしました。ここに私のコードです:imgsを判断する方法はすべてロードされています

$(function() { 
    var imgdefereds = []; 

    $('img').each(function() { 
    var dfd = $.Deferred(); 
    $(this).bind('load', function() { 
     dfd.resolve(); 
    }).bind('error', function() { 
     //error callback 
    }) 

    if (this.complete) { 
     setTimeout(function() { 
     dfd.resolve(); 
     }, 1000); 
    } 
    imgdefereds.push(dfd.promise()); 
    }) 

    $.when.apply(null, imgdefereds).done(function() { 
    console.log('complete'); 
    }); 
}) 

それは動作しませんでした。どうすれば修正できますか?

+3

どのようにIMGの高さをチェックしていますか?計算された高さを返します(例えば、displayがnoneか 'img'のheight属性が0の場合は0になります)' img.height'は 'height'プロパティを返します( 'height'属性が0の場合はゼロになります)、' img.naturalHeight'はメディアの実際の高さを返します。 – Kaiido

答えて

0

はこれを試してみてください:

$("img").one("load", function() { 
    // do stuff 
}).each(function() { 
    if(this.complete) { 
    // do stuff 
    } 
}); 
関連する問題