1

これを回避する方法についての提案が必要です。

ページで LINK がクリックされたときに実行する Ajax コードがあります。ajax コードは、PHP コードを呼び出して、特定のディレクトリ内の画像 (サムネイル サイズ) ファイル名を照会することです。実行すると、ajax データはそのディレクトリに私のサムネイルのファイル名を持ち、私のページにサムネイルを動的に表示します。

SetTimeOut() を使用せずに、すべてのサムネイルの読み込みが既に完了しているかどうかを確認する方法を教えてください。すべてのサムネイルが読み込まれたら、いくつかの jquery コードを実行します。スクロール用にサムネイル div のサイズを設定できるように、サムネイルをロードする必要があります。

4

2 に答える 2

1

次のように、画像にloadメソッドを使用できます。

$('someElement img').load(function(){
  //all loaded
});

そういう意味だったんですか

于 2012-05-09T04:15:00.387 に答える
1

方法:

function imagesLoaded(imgAr, callback){
    var 
        // This is a copy of the array of images
        imageAr = imgAr.slice(0),
        // This holds the javascript Image Objects
        images = [],
        // This is the number of Images that has loaded
        loadedCount = 0;

    var imageLoaded = function(){
        // An image has finished loading, so increment the number of images loaded by 1
        loadedCount++;
        if(loadedCount>=imageAr.length){
            // If all images have finished loading, run the 'callback' function, to report back that images have all loaded
            callback.call();
        }
    }

    // Loop around each image url
    for(var i=0;i<imageAr.length;i++){
        // For each image, create a new object
        images[i] = new Image();
        // when the image finishes loading, call the imageLoaded function
        images[i].onload = imageLoaded;
        // Assign the image the appropriate src attribute
        images[i].src = imageAr[i];
    }
}

使用する:

var imageAr = ['a.jpg', 'b.jpg', 'c.jpg'];

imagesLoaded(imageAr, function(){
    alert('Images loaded!');
});
于 2012-05-09T04:22:33.180 に答える