1

我正在使用 jQuery 对flickr API进行 ajax 调用。

到目前为止,我已经成功调用了公共照片API 并显示了结果。这是我使用的 jQuery:

getPics = function(){
    $.ajax({
        url: 'http://api.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=callbackForImages',
        dataType: 'jsonp'
    });
}
callbackForImages = function(data){
    clearResults();
    $.each(data.items, function(i, item) {
        $("<img/>").attr("src", item.media.m).appendTo("#results");
    });
}

但是,当我尝试使用论坛 API时,我不确定如何格式化回调函数。

这是我到目前为止所拥有的。

getTopics = function(){
    $.ajax({
        url: 'http://api.flickr.com/services/feeds/forums.gne?format=json&jsoncallback=callbackForTopics',
        dataType: 'jsonp'
    });
}

callbackForTopics = function(data){
    clearResults();
    //this is the bit that's broken
    $.each(data.items, function()) {
        $("title").value.appendTo("#results");
    }
}

clearResults = function(){
    $("#results").html('<div id="results"></div>');
}

任何帮助理解如何使用返回的 JSONP 将不胜感激。

4

3 回答 3

1

fetch 部分似乎是错误的。尝试类似的东西

$.each(data.items, function(idx,val) {
   $("#results").append($('<div></div>').text(val.title));
});

示例:http: //jsfiddle.net/Y9Jj3/2/

于 2012-05-31T09:33:31.107 回答
1

第一段代码的区别:

callbackForImages = function(data){

第二段代码:

callbackForTopics = function(){

data在函数定义中缺少参数。

另外,这很奇怪:

$("title").value.appendTo("#results");

不知道你的意思是什么,但这肯定行不通。

顺便说一句,这可以使用浏览器开发工具(例如 Firebug)轻松捕获

于 2012-05-31T09:33:55.577 回答
0

感谢 Jack 和 Sofl 提供的答案,我知道该怎么做。我的回调方法应该如下:

callbackForTopics = function(data){
    clearResults();
    $.each(data.items, function(i, item) {
        $("#results").append($('<div></div>').text(item.title));
    });
}
于 2012-05-31T13:14:21.247 回答