将一个变量附加到.each()语句中生成的BX滑块的每个实例

attach a variable to each instance of BX slider generated in an .each() statement

本文关键字:BX 实例 each 变量 一个 语句      更新时间:2023-09-26

我有一些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();将成为规范。如何在每个语句中动态生成这些变量?

你在找这样的东西吗?

$(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实例。