Javascript中的动态变量

Javascript中的动态变量,javascript,slider,dynamic-variables,Javascript,Slider,Dynamic Variables,我需要在test1、test2表单中创建动态变量。我知道应该使用数组或对象索引来完成,但不知何故,我无法解决问题。我有一个silder,可以在多个地方使用 silder的Js: //code for slider 1 var sliders1 = []; jQuery('.slider_1').each(function() { sliders1.push(new Slider(this)) }) //code for slider 2 var slide

我需要在test1、test2表单中创建动态变量。我知道应该使用数组或对象索引来完成,但不知何故,我无法解决问题。我有一个silder,可以在多个地方使用

silder的Js:

 //code for slider 1
    var sliders1 = [];
    jQuery('.slider_1').each(function() {   
    sliders1.push(new Slider(this))
  })

 //code for slider 2
var sliders2 = [];
jQuery('.slider_2').each(function() {
sliders2.push(new Slider(this))
})


    var Slider = function() { this.initialize.apply(this, arguments) }
    Slider.prototype = {
    initialize: function(slider) {
    this.ul = slider.children[0]
    this.li = this.ul.children

    // make <ul> as large as all <li>’s
    this.ul.style.width = (this.li[0].clientWidth * this.li.length) + 'px'

    this.currentIndex = 0
    },

    goTo: function(index) {
    // filter invalid indices
    if (index < 0 || index > this.li.length - 1)
    return

    // move <ul> left
    this.ul.style.left = '-' + (100 * index) + '%'

    this.currentIndex = index
    },

    goToPrev: function() {
    this.goTo(this.currentIndex - 1)
    },

    goToNext: function() {
    this.goTo(this.currentIndex + 1)
    }
    }
//滑块1的代码
变量滑块1=[];
jQuery('.slider_1')。每个(函数(){
滑块1.推动(新滑块(此))
})
//滑块2的代码
变量滑块2=[];
jQuery('.slider_2')。每个(函数(){
滑块2.推动(新滑块(此))
})
var Slider=function(){this.initialize.apply(this,arguments)}
Slider.prototype={
初始化:函数(滑块){
this.ul=slider.children[0]
this.li=this.ul.儿童
//使
    与所有
  • 一样大 this.ul.style.width=(this.li[0].clientWidth*this.li.length)+'px' 此.currentIndex=0 }, 转到:函数(索引){ //筛选无效索引 if(索引<0 | |索引>this.li.length-1) 返回 //向左移动
      this.ul.style.left='-'+(100*索引)+'% this.currentIndex=索引 }, goToPrev:function(){ this.goTo(this.currentIndex-1) }, goToNext:function(){ this.goTo(this.currentIndex+1) } }
现在的情况是,我需要让它充满活力。这就是我到现在为止一直在尝试的。 我能不能制作一些幻灯片1,滑块2,这样我就可以按照上面提到的东西来运行它

 //slider count
 var count= jQuery("div[id*='sliders']").length;

 var silders = {};
for( var i=1; i <= count;i++){

    sliders[i] = [];
    var class1 = '.silder_'+i;
    jQuery(class1).each(function() {    
    sliders[i].push(new Slider(this))
});
}
//滑块计数
var count=jQuery(“div[id*='sliders']”);
var silders={};

对于(var i=1;i您需要初始化滑块:

var sliders = {};
否则,该行

sliders[i] = [];

将导致异常,因为滑块未定义。

您可以尝试遍历从
1开始的数字,直到它找不到该类的元素为止。
另外,不要忘记先声明
滑块
数组

大概是这样的:

var n = 1;
var sliders = [];

while($('.slider_'+n).length > 0)
{
    sliders[n] = [];
    $('.slider_'+n).each(function() {
        sliders[n].push(new Slider(this));
    });
    n++;
}

检查我如何使用html调用它。我在那里遇到异常。找不到goToPrev。我像javascript:sliders[1][0]一样调用它。goToNext()@Creator您从未初始化第0个元素。for循环从1到count
for(var i=1;i
var n = 1;
var sliders = [];

while($('.slider_'+n).length > 0)
{
    sliders[n] = [];
    $('.slider_'+n).each(function() {
        sliders[n].push(new Slider(this));
    });
    n++;
}