1

flickr APIへの ajax 呼び出しを行うために jQuery を使用しています。

ここまでで、Public Photos 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

フェッチ部分が間違っているようです。次のようなものを試してください

$.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){

そして2番目のコード:

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 に答える