Jquery SmoothDivScroll не работает с Flickr JSON API — проблема с загрузкой?

Я использую этот скрипт для загрузки изображений из фотосета Flickr на свою страницу: (он находится в файле js с именем flickr2slideshow.js, который вызывается в заголовке моей страницы)

jQuery(document).ready(function($) {
var apiKey = 'I put my API key here';
var setID = 'I put the set ID here';
var userID = 'I put the user ID here';

$.getJSON('http://api.flickr.com/services/rest/?&method=flickr.photosets.getPhotos&photoset_id=' + setID + '&api_key=' + apiKey + '&user_id=' + userID + '&extras=description&format=json&jsoncallback=?', function(data){
    $.each(data.photoset.photo, function(i,item){
        var slideimg = '<img src="http://farm' + item.farm + '.static.flickr.com/' + item.server + '/' + item.id + '_' + item.secret + '.jpg" height="200" />';
        var newthumb = $(".scrollableArea").append(slideimg);
    });

    $("div#makeMeScrollable").smoothDivScroll({
        autoScroll: "always" ,
        autoScrollDirection: "endlessloopleft",
        autoScrollStep: 1,
        autoScrollInterval: 15,
        visibleHotSpots: ""
    });
});
})

Приведенный выше скрипт отлично работает и загружает изображения в div .scrollableArea на моей странице.

ПРОБЛЕМА заключается в том, что я хочу, чтобы эти фотографии отображались в слайд-шоу, в котором используется скрипт плагина jQuery SmoothDivScroll. SmoothDivScroll отлично работает, когда я использую его с изображениями, которые жестко закодированы на моей странице. Однако изображения набора Flickr не будут работать с SmoothDivScroll при загрузке в div с помощью моего сценария flickr4slideshow.js). Появляется ТОЛЬКО первое изображение в наборе Flickr, и оно не прокручивается.

Я предполагаю, что изображения набора flickr все еще загружаются при запуске сценария SmoothDivScroll. Как я могу заставить скрипт ждать или начать работать, даже когда набор Flickr все еще загружается в div?

* Я проверил это, добавив жестко закодированные изображения в div .scrollableArea И используя скрипт Flickr. Когда это происходит, это работает - сначала отображаются жестко закодированные изображения из html, а затем отображаются изображения, установленные flickr.


person user720905    schedule 18.01.2012    source источник


Ответы (1)


В версии 1.2 появился новый метод changeContent с возможностью загрузки контента с Flickr (канал RSS). Если у вас есть RSS-канал для вашего фотосета, попробуйте загрузить изображения с помощью этого метода. Вот пример:

$("#makeMeScrollable").smoothDivScroll("changeContent", "http://api.flickr.com/services/feeds/groups_pool.gne?id=34427469792@N01&format=json&jsoncallback=?", "flickrFeed", "add", "first");

Прежде чем использовать этот код, вам нужно будет инициализировать плагин. Этот метод используется не очень часто (насколько мне известно), поэтому дайте мне знать, если он работает для вас и есть ли какие-либо улучшения, которые я могу внести в следующую версию.

Удачи!

person tkahn    schedule 13.04.2012