设置Flickr脚本...在我的ajax成功函数中,如何将var添加到实际的 this 元素中?我知道这个而 $(this)代表不同的东西。很难写出来,所以我将使用我的代码示例来更好地解释。
我的函数集包含已定义的变量:function flickr_feed(flickrID, flickr_count, photo_size) {
,其中有问题的变量是photo_size
使用条件从getSize
中的可读格式设置photo_size
变量:
if (photo_size == 'square') var getSize = 'url_sq';
然后我将getSize
转储到ajax网址:
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。但是,如果我手动将photoSrc
设置为this.url_sq
,那就没关系了。只是无法弄清楚如何让变量在那里以相同的方式工作。
为可怕的解释道歉。如果它有意义,任何帮助将不胜感激。
编辑:我对$ .ajax的体验有限。但是从我收集的内容来看,这个指的是返回的数据。所以在这个意义上,photoSrc
返回undefined,因为它认为getSize
是数据中的结果,而不是。那么如何编写它以便使用实际的getSize
值?
编辑:以下是脚本的粘贴框:http://pastebin.com/KGCUgAet
答案 0 :(得分:1)
在 ajaxRequest
之前缓存您的内容var originalContext = this;
$.ajax({
success: function() {
$.each(data.photos.photo, function() {
originalContext // Available here
this // Current object under iteration
});
}
答案 1 :(得分:0)
通过编写photoSrc
var来对其进行排序:var photoSrc = this[getSize];
感谢Sushanth确认我关于此的问题以及返回的数据。这有助于解决这个问题。