使用数组设置方法调用中的选项

时间:2013-03-01 15:54:15

标签: javascript jquery arrays

如何使.slider()方法使用数组中的值?

我有相同的滑块我必须设置好几次,所以我想我会调用一次,并用索引输入值。这可能不是这样做的方法,但它是我的想法。

我希望每次调用滑块时单步执行并更改索引号,以便更新为接下来的6个值。我意识到这段代码不起作用,只是为了解释。

var yolo = ["yield", "true", "15.2", "308", "0.3", "[75.8, 241.4]", "tensile", "true", "37.7", "345", "[81.2, 243.3]"];

     $( yolo[0] ).slider({
        range: yolo[1],
        min: yolo[2],
        max: yolo[3],
        step : yolo[4],
        values: yolo[5],

        slide: function( event, ui ) {
            $( "#" + yolo[0] + "-value" ).val( ui.values[ 0 ] + " - " + ui.values[ 1 ] );
        }
     }); //When done, call again, just that updating the index numbers to the next 6

可能是.each() $.extend()

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

var settings = {
    "yield" : {
         range: true,
         etc..
    },
    "yield2" : {
         range: true,
         etc..
    }
}

$.each(settings, function(key, value){
    var _key = key;
    $( "#" + _key ).slider(
        $.extend(value, {    
            slide: function( event, ui ) {
                $( "#" + _key + "-value" ).val( ui.values[ 0 ] + " - " + ui.values[ 1 ] );
            }
        })
    );
});

额外信息:

  1. jQuery.extend
  2. jQuery.each

答案 1 :(得分:0)

使用.each http://api.jquery.com/each/迭代数组。

答案 2 :(得分:0)

您可以只使用普通对象,而不是使用数组:

var yolo = {
   range : true,
   min : 15.2,
   max : 308,
   slide : function(){}
};

然后将其传递给滑块。

$(...).slider(yolo);