javascript - 如何动态创建多个 jQuery slider ?

标签 javascript jquery jquery-plugins

我正在开发一个 WordPress 网站,该网站将自定义帖子类型转换为页面上的 slider 。我正在使用 Sequence.js对于我的 slider ,我可以手动创建多个 slider ,以下没有问题:

//sequence slider options to be used by slider1
var options0 = {
    sartingFrameID: 1,
    cycle: true,
    autoPlay: false,
    nextButton: '.next0',
    prevButton: '.prev0',
    fallback: {
        theme: "fade",
        speed: 100
    }
}

//slider1
var sequence0 = $(".slideContainer0").sequence(options0).data("sequence");

//sequence slider options to be used by slider2
var options1 = {
    sartingFrameID: 1,
    cycle: true,
    autoPlay: false,
    nextButton: '.next1',
    prevButton: '.prev1',
    fallback: {
        theme: "fade",
        speed: 100
    }
}

//slider2
var sequence1 = $(".slideContainer1").sequence(options1).data("sequence");

我怎样才能简化这个?并使其动态化,以便为每个发布的帖子创建一个 slider ?任何帮助将不胜感激。

编辑 - 添加工作答案

我在第一部分中使用了下面 Cymen 的答案,方法是将选项输出转换为一个函数,并简单地为每个序列实例调用一个带有计数器的函数。然后使用他回答的第二部分来初始化每个序列 slider ,这很有效。

这就是我现在的工作:

function options(number) {
    return {
        startingFrameID: 1,
        cycle: true,
        autoPlay: false,
        nextButton: '.next' + number,
        prevButton: '.prev' + number,
        fallback: {
            theme: "fade",
            speed: 100
        }
    };
}

var count = 0;
$('.slideContainer').each(function() {
    var sequence = $(this); 
    sequence.sequence(options(count)).data('sequence');
    count++;
});

最佳答案

我没有使用过序列,但从你的帖子来看,我猜你希望能够重新创建带有数字增量的选项对象。所以你可以这样做:

function options(number) {
  return {
   startingFrameID: 1,
    cycle: true,
    autoPlay: false,
    nextButton: '.next' + number,
    prevButton: '.prev' + number,
    fallback: {
        theme: "fade",
        speed: 100
    }
  };
}

然后像这样使用它:

$(target).sequence(options(0)).data("sequence");

或者在您的具体示例中:

//slider1
var sequence0 = $(".slideContainer0").sequence(options(0)).data("sequence");

//slider2
var sequence1 = $(".slideContainer1").sequence(options(1)).data("sequence")

然后做你正在谈论的事情如何给所有序列一个相同的类,比如 custom-sequence 然后做这样的事情:

var count = 0;
$('.custom-sequence').each(function() {
  var sequence = $(this);
  sequence.sequence(options(count)).data('sequence');
  count++;
});

这可能有效也可能无效——我不太清楚 .data('sequence') 在做什么。

关于javascript - 如何动态创建多个 jQuery slider ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864930/

相关文章:

javascript - 如何使用 jQuery 验证插件禁用输入

javascript - 为什么这些 JavaScript 函数不添加到该对象中?

javascript - 如何在客户端点击按钮时选择不同的leaflet js文件

特定时间和日期的Javascript倒计时

javascript - jquery 插件托管,就像 google 使用 jquery 一样

javascript - Bxslider边框问题

javascript - 过滤箭头函数 (ES6)

javascript - Google 如何在创建新 Google 帐户的表单上为其输入复选框创建复选标记?

javascript - 如何将 JavaScript 元素转换为 Web 应用程序或 API?

jquery - 无法拖动对象的克隆 (JQuery)