2013-05-16 2 views
0

Flickr 스크립트 설정 ... 아약스 성공 함수에서 var를 실제 요소와 함께 넣을 수 있습니까? 나는 을 알고 있으며$ (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 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은 정의되지 않은 값을 반환합니다. 하지만 수동으로 photoSrcthis.url_sq으로 설정하면 문제가 없습니다. 같은 방법으로 변수를 가져 오는 방법을 알아낼 수 없습니다.

끔찍한 설명에 사과드립니다. 전혀 이해가된다면 도움이 될 것입니다.

편집 : $ .ajax에 대한 나의 경험은 제한적입니다. 그러나 내가 모은 것에서 은 반환 된 데이터를 참조합니다. 그래서 그 의미에서, 은 데이터 내에있는 결과 인 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

저는 아직도 아약스에 익숙하지 않습니다. 하지만 ** **이 ** $ .each에 반환 된 데이터에 적용됩니다. 컨텍스트가 $. 각 범위 내에 있습니다. –

+1

예 .. 당신 말이 맞아요. –

관련 문제