2010-08-23 4 views
2

В настоящее время я пытаюсь создать небольшой сайт, который вытаскивает множества из flickr с помощью JavaScript и JSON. Все работает отлично, за исключением того, что порядок фотографий на сайте отличается от порядка набора на Flickr. Я искал это для решения, но не повезло. Кто-нибудь имел эту проблему раньше? и/или знать решение? Мой текущий код:Сохранять заданный порядок подачи Flickr API

function getImages(setID) { 
$.getJSON("http://api.flickr.com/services/feeds/photoset.gne?set=" + setID + "&nsid=USER_ID&lang=en-us&format=json&jsoncallback=?", displayImages); 
} 

function displayImages(data) { 
var htmlString = ""; 
$.each(data.items, function(i,item){ 

    // get large images 
    var nextImage = (item.media.m).replace("_m.jpg", "_b.jpg"); 
    htmlString += '<img title="' + item.title + '" src="' + nextImage; 
    htmlString += '" alt="'; htmlString += item.title + '" />'; 

}); 

$('#images').html(htmlString); 
} 

ответ

1

после более просматривал апи, я в конечном итоге с помощью rest вместо feeds, который приносит в порядке правильно. К сожалению, вы не можете получить доступ к большим изображениям таким образом, но информация для доступа к ним предоставляется, поэтому было необходимо создать img src для каждого изображения при циклировании:

function getImages(setID) { 
$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=yourAPIkey&photoset_id=" + setID + "&lang=en-us&format=json&jsoncallback=?", displayImages); 
} 

function displayImages(data) { 
var htmlString = ""; 
$.each(data.photoset.photo, function(i,photo){ 

    var imgSrc = 'http://farm' + photo.farm + '.static.flickr.com/' + photo.server + '/' + photo.id + '_' + photo.secret + '_b.jpg'; 
    htmlString += '<img title="' + photo.title + '" src="' + imgSrc; 
    htmlString += '" alt="'; htmlString += photo.title + '" />'; 

}); 

$('#images').html(htmlString); 
} 
Смежные вопросы