2013-05-16 47 views
0

設置一個Flickr腳本......在我的ajax成功函數中,我將如何將var添加到實際的這個元素中?我知道這個$(this)代表不同的東西。很難寫出來,所以我會用我的代碼示例來更好地解釋。設置一個變量到數據元素

我有功能設定與所定義的變量:function flickr_feed(flickrID, flickr_count, photo_size) {,所討論的變量是photo_size

使用條件來設置在可讀的格式在photo_sizegetSize變量:

if (photo_size == 'square') var getSize = 'url_sq';

然後我把那個getSize轉儲到ajax url:

url: 'http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' + flickrAPI + '&user_id=' + flickrID + '&per_page=' + flickr_count + '&page=0&extras=' + getSize + '&format=json&jsoncallback=?', 

我在成功函數中遇到的問題是將getSize var設置爲元素。

success: function(data) { 
    $.each(data.photos.photo, function() { 
     var photoID = 'http://www.flickr.com/photos/' + flickrID + '/' + this.id; 
     var photoSrc = this.getSize; 
     console.log(photoSrc); 
    }); 
} 

在這個結果中,photoSrc返回undefined。但是,如果我手動設置photoSrcthis.url_sq,那很好。只是無法弄清楚如何讓變量在那裏以相同的方式工作。

道歉的可怕的解釋。如果它是有道理的,任何幫助將不勝感激。

編輯:我的經驗與$ .ajax是有限的。但從我收集的數據來看,這個指的是返回的數據。所以在這個意義上,photoSrc返回undefined,因爲它認爲getSize是數據內的結果,它不是。那麼如何編寫這個文件以便使用實際的getSize值呢?

編輯:這裏的腳本的引擎收錄:http://pastebin.com/KGCUgAet

回答

0

整理出來與寫photoSrc VAR是這樣的:var photoSrc = this[getSize];

感謝Sushanth確認我的問題這個和返回的數據。這有助於解決問題。

1

緩存您在這之前你ajaxRequest

var originalContext = this; 
$.ajax({ 


success: function() { 
    $.each(data.photos.photo, function() { 

      originalContext // Available here 
      this // Current object under iteration 
    }); 
} 
+0

這裏沒有什麼在做。仍然返回未定義。 –

+0

我對ajax仍然不夠熟悉。但它看起來像** this **適用於$ .each中的返回數據。所以上下文在$ .each內,對嗎? –

+1

是的..你說得對.. –

相關問題