0

设置 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:

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=?',

我在成功函数中遇到的问题是将getSizevar 设置为元素。

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返回未定义。但是如果我手动设置photoSrcthis.url_sq,那很好。只是无法弄清楚如何让变量在那里以相同的方式工作。

为可怕的解释道歉。如果它完全有意义,任何帮助将不胜感激。

编辑:我对 $.ajax 的经验是有限的。但据我所知,是指返回的数据。因此,从这个意义上说,photoSrc未定义的返回是getSize数据中的结果,但事实并非如此。那么如何编写才能使用实际getSize值呢?

编辑:这是脚本的粘贴箱:http: //pastebin.com/KGCUgAet

4

2 回答 2

1

在您的ajaxRequest之前缓存您的this

var originalContext = this;
$.ajax({


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

          originalContext // Available here
          this  // Current object under iteration
     });
}
于 2013-05-16T20:00:43.540 回答
0

通过像这样编写photoSrcvar 对其进行排序: var photoSrc = this[getSize];

感谢 Sushanth 确认我关于问题和返回数据的问题。这有助于弄清楚。

于 2013-05-16T21:38:17.700 回答