0

不明な数のギャラリーに対してBXスライダーを使用してスライドショーを作成するjQueryがいくつかあります。マークアップはPHPCMSによって出力されるため、1ページに必要なギャラリーの数を確信することはできません。

$(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();、標準になります。この各ステートメント内でこれらの変数をその場で生成するにはどうすればよいですか?

4

1 に答える 1

1

このようなものをお探しですか?

$(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必要に応じて使用できる連想配列として、すべてのスライダーインスタンスが含まれます。

たとえばbxSliderInstances.slider1、または`bxSliderInstances["slider1"]最初のbxSliderインスタンスを提供します。

于 2012-02-16T16:37:04.313 に答える