Начальное изображение галереи возвращается к первому изображению

Я использую галерею изображений Galleria на своем веб-сайте. Проблема в следующем: когда я запускаю галерею в первый раз, а исходное изображение не первое, Galleria на мгновение показывает исходное, а затем возвращается к первому изображению. Когда я нажимаю на большие пальцы еще раз, Galleria действует правильно, так что это происходит только в первый раз. Вот код, который я использую для инициализации галереи:

$('.thumbnail').live('click', function(){   

            var image_number = getNumber($(this).attr('id'));
            Galleria.ready(function(options) {
                this.show(image_number);
            });
            Galleria.run('#galleria');
            $('#galleria_frame').show();    
           });

getNumber - это моя функция, которая возвращает номер изображения в галерее, первое изображение имеет номер 0, второе - номер 1 и т. д.
где моя ошибка? Почему галерея возвращается к первому изображению, когда я нажимаю .thumbnail в первый раз?


person user1621717    schedule 24.08.2012    source источник
comment
Попробуйте привести здесь свой пример jsfiddle.net Этой информации недостаточно   -  person kidwon    schedule 24.08.2012
comment
не может смоделировать всю ситуацию при массовом включении скриптов и картинок. просто посмотрите пожалуйста, правильно ли я использую api. Я прочитал документацию, но могу ошибиться при построении кода инициализации.   -  person user1621717    schedule 24.08.2012


Ответы (1)


С вашим кодом есть пара проблем.

1) вы инициализируете Galleria несколько раз (каждый раз, когда вы щелкаете миниатюру)

2) вы добавляете несколько слушателей к событию ready каждый раз, когда вы указываете галерее показывать различные изображения при загрузке.

Попробуйте вместо этого:

$('.thumbnail').live('click', function(){   
    var image_number = getNumber($(this).attr('id')),
        instance = $('#galleria').data('galleria');

    // if Galleria already loaded, just show the index:
    if (instance) {
        instance.show(image_number);
    } else {
    // else fire up Galleria and pass the index as an option
        $('#galleria_frame').show();
        Galleria.run('#galleria', { show: image_number });
    }
});
person David Hellsing    schedule 25.08.2012
comment
Когда я использую ваш пример во второй раз, я нажимаю на миниатюру (где instance true), кнопки prev / next больше не изменяют изображения галереи. Мысли? - person 12Bo; 06.02.2013