0

ajax リクエストから画像とデータをロードし、Blocksit ギャラリー (メーソン ギャラリー用の jquery プラグイン) に表示するスクリプトを実行しています。問題の div は、画像が実際に読み込まれる前に作成されているため、ギャラリーに正しく配置されません。どういうわけかデータを保持してロードし、関数を実行してギャラリーを表示する必要があります。setTimout を使用してみましたが、明らかに運がありません。ここに私のコードがあります:

("#loadMore").click(function(){
    $.ajax({
        url: "loadMore.php",
        data: {count: count,
               type: type},
        type: "POST",
        success: function(html){
            var data = jQuery.parseJSON(html);
            if (data.html == "stop"){

            }
            else{
                setTimeout(function() {
                    $('#container').append(data.html);
                    $('#container').BlocksIt({
                        numOfCol: 3,
                        offsetX: 5,
                        offsetY: 5
                    });


                }, 2000);
                $('html, body').animate({ scrollTop: $(document).height()-$(window).height() }, 500, "linear");
                count = $(".grid").length;
            }          
        }
    });
});

どんな助けでも大歓迎です:)

4

1 に答える 1

1

次の手順を試してください -

ドムを作成する

$('<img/>')[0].src = /* ur url */;

次に、コード onLoad イベントを実行します

$('img').load(function(){
 // your code 
});

実際、ブラウザは十分にスマートなので、データがdomに追加されない限りロードされません.....タイムアウトに設定した時間は関係ないので、domを作成してから、imgのロード時にそれを挿入してみてください適切な場所

于 2013-05-16T10:15:33.750 に答える