API JQuery и Flickr, неправильное получение сведений о фотосете

Я пытаюсь использовать Flickr API для создания фотогалереи на своем веб-сайте, у меня есть API и фотосет, и я использую метод Flickr getPhotos, который возвращает фотографии из заданного набора, и я вызываю это с помощью jQuery.

Мой javascript, кажется, работает нормально, за исключением того, что детали фотосета Flickr возвращаются, в момент создания моих местоположений src данные теряются...

Во время отладки (с использованием Internet Explorer - F12) объект «данные» содержит ожидаемые детали с параметром фотонабора, в этом параметре у меня есть параметр «фото», и в нем у меня есть коллекция объектов [0-37] каждый содержащий параметры «ферма, идентификатор, секрет, сервер и название» с ожидаемыми значениями. Тем не менее, когда я создаю свою HTML-переменную «theHtml» и заполняю пробелы указанными выше значениями, мое значение HTML устанавливается на «неопределенное».

Итак, вместо ожидаемого: farm4.static.flickr.com/2480/1234567890_a1a1a1a1a1_b.jpg

Я получаю farmundefined.static.flickr.com/undefined/undefined_undefined_b.jpg

Кто-нибудь может мне это объяснить?

Вот мой код jQuery:

<script type="text/javascript">
 $(document).ready(function(){
 $.getJSON('http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&photoset_id=00000000000000000&format=json&jsoncallback=?', displayImages);
  function displayImages(data) {
   var theHtml = "";
   $.each(data.photoset, function(i,photo){
    var source = 'http://farm'+photo.farm+'.static.flickr.com/'+photo.server+'/'+photo.id+'_'+photo.secret+'_b.jpg';
    theHtml+= '<li><a href="'+photo.link+'" target="_blank">';
    theHtml+= '<img title="'+photo.title+'" src="'+source+'" alt="'+photo.title+'" />';
    theHtml+= '</a></li>';
   });
   $('#images').html(theHtml);
  };
 });
 </script>

<div id="images"></div>

var source не строится правильно.

Заранее привет!


person Mark    schedule 29.07.2010    source источник
comment
Сортировка! $.each(data.photoset, function(i,photo){ Должно было быть $.each(data.photoset.photo, function(i,photo){   -  person Mark    schedule 29.07.2010
comment
Опубликуйте его как ответ, а затем примите его, щелкнув галочку рядом с ним, чтобы другие могли получить пользу, если у них возникнет такая же проблема.   -  person Anurag    schedule 29.07.2010


Ответы (1)


Сортировка!

$.each(data.photoset, function(i,photo){ 

Должны были быть

$.each(data.photoset.photo, function(i,photo){
person mark    schedule 29.07.2010
comment
вы писали под разными аккаунтами? - person Anurag; 31.07.2010
comment
Марк, спасибо за сценарий! Это идеально подходит для того, что я пытаюсь сделать. Однако по какой-то причине отображается только последнее изображение в наборе фотографий. Были ли у вас проблемы с этим? - person jonathonthoma; 26.01.2011