прикрепить переменную к каждому экземпляру ползунка BX, сгенерированному в операторе .each () - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть несколько jQuery, который создает слайд-шоу, используя слайдер BX для неизвестного числа галерей. Разметка выводится PHP CMS, поэтому мы не можем быть уверены в количестве галерей, которые нам понадобятся на странице.

$(function () {

    // Use a class rather than an ID
    var $slider = $('.gallery');

    // For each result
    $slider.each(function (index, element) {

        // If there is more than 1 image
        if ($(element).find('img').length > 1) {

            // Initialise a slider using the current index value
            $slider.eq(index).bxSlider({
                auto: false,
                pager: false,
                duration: 500
            });

        }

    });

});

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

Так что var slider = $('#gallery').bxSlider(); будет нормой. Как я могу сгенерировать эти переменные на лету в этом каждом утверждении?

1 Ответ

1 голос
/ 16 февраля 2012

Вы ищете что-то подобное?

$(function () {

    var bxSliderInstances = {};

    // Use a class rather than an ID
    var $slider = $('.gallery');

    // For each result
    $slider.each(function (index, element) {

        // If there is more than 1 image
        if ($(element).find('img').length > 1) {

            // Initialise a slider using the current index value
            bxSliderInstances["slider" + index] = $slider.eq(index).bxSlider({
                auto: false,
                pager: false,
                duration: 500
            });

        }

    });

});

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

E.g bxSliderInstances.slider1 или `bxSliderInstances["slider1"] даст вам первый bxSlider экземпляр.

...