0

Flickr スクリプトのセットアップ... 私の ajax 成功関数では、実際のthis要素にどのように 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=?',

私が成功関数で抱えている問題は、そのgetSize変数を要素に設定することです。

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);
    });
}

この結果では、 photoSrcundefined が返されます。しかし、手動で に設定すれば問題photoSrcありませんthis.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

photoSrc次のようにvar を記述して整理しました:var photoSrc = this[getSize];

これと返されたデータに関する私の質問を確認してくれた Sushanth に感謝します。それはそれを理解するのに役立ちました。

于 2013-05-16T21:38:17.700 に答える