1

我很困惑为什么我会收到重复的图像。

这是我在 jsfiddle 上的代码:

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

我在想也许这是一个async问题,在搜索之前接收新的分页但是,我能做些什么来改变它?

谢谢你

艾登

4

2 回答 2

1

问题是第二个$.ajax()电话是在第一个电话结束之前进行的。

您需要做的是设置这样的功能:

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);
            }
    });
}

wheren仅用于检查您调用该函数的次数,并且pages是您要“加载/显示”的页数。

然后,您只需使用您拥有的 url 调用一次此函数,如下所示:

displayImgs(url);

你应该得到你想要的。

这是一个演示

于 2013-02-05T01:48:35.713 回答
0

一方面

url = data.pagination.next_url;

不在您的“成功”范围内。

于 2013-02-05T01:37:37.847 回答