Вызвать функцию после загрузки всех слайдов в цикле jquery

Я пытаюсь вызвать функцию после загрузки всех слайдов в слайдере цикла jquery. на странице параметров веб-сайта плагина http://jquery.malsup.com/cycle/options.html Я обнаружил опцию after, которую можно использовать для вызова функции после загрузки каждого слайда. но я хочу, чтобы функция вызывалась, когда загружены все слайды, а не каждый слайд.

Я добавил оповещение("привет") в onAfter() и вижу оповещение приветствие после каждого щелчка пейджера. чего я действительно не хочу.

Я использую следующую инициализацию цикла.

    $('#lb_main-slide').cycle({ 
            fx:     'fade',
            speed:  '100', 
            timeout: 0, 
            startingSlide: index,
            pager:  '#lb-slidethumbs', 
            pagerAnchorBuilder: imagepager2,
            after: onAfter,
            requeueOnImageNotLoaded: true
            });

Есть ли способ вызвать одну функцию после успешной загрузки всех слайдов?

Заранее спасибо.


person Kuldeep Daftary    schedule 26.07.2012    source источник
comment
Когда вы говорите, что после загрузки всех слайдов вы имеете в виду DOM + все изображения загружены или когда все слайды были отображены?   -  person Anders Arpi    schedule 26.07.2012
comment
привет @AndersHolmström Я не имею в виду DOM + все изображения. Я имею в виду, когда функция цикла jquery успешно завершена. Я вызываю этот плагин цикла на лайтбоксе, поэтому я инициализирую эту функцию при нажатии триггеров лайтбокса.   -  person Kuldeep Daftary    schedule 26.07.2012
comment
Но цикл никогда не «заканчивается», не так ли? Это цикл, так что он просто идет по кругу... Вы хотите, чтобы функция вызывалась тогда, когда цикл останавливается, или когда он достигает последнего изображения в наборе для циклического прохождения?   -  person Anders Arpi    schedule 26.07.2012
comment
Да, @AndersHolmström, у вас есть точка зрения .. Или я хотел бы иметь функцию, которая вызывается только один раз после загрузки цикла. (Подобно функции, вызываемой с использованием опции after, но только один раз)   -  person Kuldeep Daftary    schedule 26.07.2012
comment
Похоже, вы просто хотите иметь возможность выполнять больше JavaScript после вызова цикла () для объекта? Можете ли вы попытаться объяснить, что вы на самом деле пытаетесь сделать вместо этого?   -  person Anders Arpi    schedule 26.07.2012
comment
Оказалось, что я хотел вызвать свою функцию после того, как все тумбы в моем цикле были построены.   -  person Kuldeep Daftary    schedule 13.08.2012


Ответы (2)


Что ж, чтобы решить эту проблему, я назвал свою функцию в основном файле jquery.cycle.all.js, в

function buildPager(els, opts)

после

opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);

Поэтому я вызвал свою функцию после того, как был построен пейджер цикла. И это сработало для меня отлично.

Спасибо.

person Kuldeep Daftary    schedule 13.08.2012

У меня была такая же проблема. Но я читал, что в JavaScript есть разные типы функций. Я понял, что пытался передать ссылку на глобальную функцию атрибуту «после». Это не сработало.

Попробуйте сделать что-то вроде этого:

    $('#images').cycle({
         timeout: 5000,
         fx:'fade',
         after: (function() {
             MyClass.performNow();
         })
    });
person Jamel Toms    schedule 10.01.2013