1
<div id='slider'></div>
<div id='start'><input value="1"></div>
<div id='stop'><input value="99"></div>
$.ui.slider.prototype._slide = function (event, index, newVal) {
var otherVal,
newValues,
allowed;
if (this.options.values && this.options.values.length) {
otherVal = this.values(index ? 0 : 1);
if (newVal !== this.values(index)) {
newValues = this.values();
newValues[ index ] = newVal;
// A slide can be canceled by returning false from the slide callback
allowed = this._trigger("slide", event, {
handle: this.handles[ index ],
value: newVal,
values: newValues
});
otherVal = this.values(index ? 0 : 1);
if (allowed !== false) {
this.values(index, newVal, true);
}
}
} else {
if (newVal !== this.value()) {
// A slide can be canceled by returning false from the slide callback
allowed = this._trigger("slide", event, {
handle: this.handles[ index ],
value: newVal
});
if (allowed !== false) {
this.value(newVal);
}
}
}
}
$('#slider').slider({
min: '0',
max: '99',
range: true,
values: [0,99],
slide: function(event, ui) {
if(ui.values[0] >= ui.values[1]) {
if(ui.handle == $("#slider a")[0]) {
$("#slider").slider("values", 1, ui.value+1);
ui.values[0] = ui.value;
ui.values[1] = ui.value+1;
} else {
$("#slider").slider("values", 0, ui.value-1);
ui.values[0] = ui.value-1;
ui.values[1] = ui.value;
}
}
var minutes0 = Math.floor(ui.values[0]);
var minutes1 = Math.floor(ui.values[1]);
$('#start input').val(minutes0);
$('#stop input').val(minutes1);
}
});
바이올린 : 내가 핸들러를 드래그하면당신에게 슬라이더가 입력 상자에 변경 사항을 반영 할 방법
http://jsfiddle.net/Nk8ap/18/는 지금, 변경이 텍스트 상자에 반영됩니다.
하지만 수동으로 숫자를 입력 할 때 해당 변경 사항이 처리기에 반영되도록하려면 어떻게해야합니까?
이 봐,이 일! 고맙습니다. 그러나 일단 입력되면 값을 변경하는 방법은 무엇입니까? 지금 당장 입력을 누르거나 마우스를 사용하여 텍스트 상자 바깥을 클릭해야 변경 사항을 볼 수 있습니까? 사전에 감사드립니다 – user2539797
물론 그냥 키 이벤트 중 하나를 사용하십시오. 여기에는 키패드처럼 [*** FIDDLE ***] (http://jsfiddle.net/Nk8ap/26/) ....... – adeneo
최고! * THUMBS UP * – user2539797