Jquery ui slider:html中的value,min和max

时间:2011-08-24 22:02:06

标签: jquery jquery-ui uislider

我正在使用jquery-ui创建一些滑块,我有一个问题,我可以如何做到这一点:

我有这个HTML代码:

<div class="slider range-slide">
    <b>A range slider:</b>
    <span class="amount"></span>
    <div class="slide"></div> 
</div> 

这是js:

$(".range-slide").each(function () {
    var $this = $(this);
    $(".slide", $this).slider({
        values: [30, 60],
        min: 0,
        max: 100,
        range: true,
        slide: function (event, ui) {
            $("span.amount", $this).html("" + ui.values[0] + 
                                         " - " + ui.values[1]);
        }
    });
    $(".range-slide span.amount").html("" + $(".slide").slider("values", 0) + 
                                       " - " + $(".slide").slider("values", 1));
});   

每件事都很好但我怎么能这样做:

<div class="slider range-slide">
    <b>A range slider:</b>
    <span class="amount"></span>
    <div class="slide" value="30,60" max="100" min="10"></div> 
</div> 

2 个答案:

答案 0 :(得分:5)

更改滑块以使用这些值。

$(".slide", $this).slider({
    values: [30, 60],
    min: $(this).attr('min'),
    max: $(this).attr('max'),
    range: true,
    slide: function(event, ui) {
        $("span.amount", $this).html("" + ui.values[0] + " - " + ui.values[1]);
    }
});

<强>更新: 查看this fiddle

$(".range-slide div.slide").each(function() {
$(this).slider({
    values: [30, 60],
    min: parseInt($(this).attr('min')),
    max:  parseInt($(this).attr('max')),
    range: true,
    slide: function(event, ui) {
        $("span.amount", $(this).parent()).html("" + ui.values[0] + " - " + ui.values[1]);
    }
});
$(".range-slide span.amount").html("" + $(this).slider("values", 0) + " - " + $(this).slider("values", 1));
});

更新2 使用split可以用逗号分隔值并将它们分配给变量。 Fiddle

$(".range-slide div.slide").each(function() {
    values = $(this).attr('value').split(',');
   firstVal = values[0];
    secondVal = values[1];


    $(this).slider({
        values: [firstVal , secondVal],
        min: parseInt($(this).attr('min')),
        max:  parseInt($(this).attr('max')),
        range: true,
        slide: function(event, ui) {
            $("span.amount", $(this).parent()).html("" + ui.values[0] + " - " + ui.values[1]);
        }
    });
    $(".range-slide span.amount").html("" + $(this).slider("values", 0) + " - " + $(this).slider("values", 1));
    });

答案 1 :(得分:0)

未经测试......

$(".range-slide").each(function() {
var $this = $(this);
$(".slide", $this).slider({
    values: $(this).attr('value').split(','),
    min: $(this).attr('min'),
    max: $(this).attr('max'),
    range: true,
    slide: function(event, ui) {
        $("span.amount", $this).html("" + ui.values[0] + " - " + ui.values[1]);
    }
});
$(".range-slide span.amount").html("" + $(".slide").slider("values", 0) + " - " + $(".slide").slider("values", 1));
});