我想要一个滑块,可以在拖动时更改输入框的值,但是当手动将值输入到输入框中时,滑块也会反映出来。
<form>
<div>
<input type="text" class="sliderValue" data-index="0" value="10" />
<input type="text" class="sliderValue" data-index="1" value="90" />
</div>
<br />
<div id="slider"></div>
</form>
$(document).ready(function() {
$("#slider").slider({
min: 0,
max: 100,
step: 1,
values: [10, 90],
slide: function(event, ui) {
for (var i = 0; i < ui.values.length; ++i) {
$("input.sliderValue[data-index=" + i + "]").val(ui.values[i]);
}
}
});
$("input.sliderValue").change(function() {
var $this = $(this);
$("#slider").slider("values", $this.data("index"), $this.val());
});
});
像这样:http://jsfiddle.net/FPCRb/
但是我需要滑块的处理程序在彼此拖动时互相反弹。换句话说,正确的处理程序不应该位于处理程序的左侧。
答案 0 :(得分:0)
链接:http://jsfiddle.net/FPCRb/1096/
$(document).ready(function() {
$("#slider").slider({
min: 0,
max: 100,
step: 1,
values: [10, 90],
slide: function(event, ui) {
if ( ui.values[0] >= ui.values[1] ) {
return false;
} else {
for (var i = 0; i < ui.values.length; ++i) {
$("input.sliderValue[data-index=" + i + "]").val(ui.values[i]);
}
}
}
});
$("input.sliderValue").change(function() {
var $this = $(this);
$("#slider").slider("values", $this.data("index"), $this.val());
});
});