我正在使用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>
答案 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));
});