1

結果として重複した画像が表示される理由について、私は非常に混乱しています。

これが私がjsfiddleに持っているコードです:

http://jsfiddle.net/NyLch/3/

私はそれがasync問題であるかもしれないと思っていました、それが検索する前に新しいページネーションを受け取りました、しかしそれを変えるために私は何ができますか?

ありがとうございました

エイデン

4

2 に答える 2

1

問題は$.ajax()、最初の呼び出しが終了する前に2番目の呼び出しが行われることです。

あなたがする必要があるのはこのような関数を設定することです:

var n = 0, pages = 2;
function displayImgs(url) {
    $.ajax({
            type: "GET",
            dataType: "jsonp",
            cache: false,
            url: url,
            success: function(data) 
            {
                 alert(data.pagination.next_url);
                 for(var i=0;i<data.data.length; i++)
                 {
                     $("#gallery").append('<img src="'+data.data[i].images.low_resolution.url+'" height="50" width="50">');
                 }
                n++
                if(n<pages) displayImgs(data.pagination.next_url);
            }
    });
}

ここで、nは関数を呼び出す回数を確認するためにのみ使用され、pages「ロード/表示」するページ数です。

次に、次のようなURLを使用してこの関数を1回呼び出す必要があります。

displayImgs(url);

そして、あなたはあなたが望むものを手に入れるべきです。

これがデモです。

于 2013-02-05T01:48:35.713 に答える
0

一例を挙げると

url = data.pagination.next_url;

あなたの「成功」ブロックの外にあります。

于 2013-02-05T01:37:37.847 に答える