Javascript 如何使滑块反映在输入框中所做的更改 $.ui.slider.prototype.\u slide=函数(事件、索引、newVal){ var otherVal, 新价值观, 允许; if(this.options.values&&this.options.values.length){ otherVal=该值(指数?0:1); if(newVal!==this.values(index)){ newValues=this.values(); newValues[index]=newVal; //通过从幻灯片回调返回false,可以取消幻灯片 允许=此。\触发(“滑动”,事件{ 句柄:this.handles[index], 值:newVal, 价值观:新价值观 } ); otherVal=该值(指数?0:1); 如果(允许!==false){ 此参数值(索引、newVal、true); } } }否则{ if(newVal!==this.value()){ //通过从幻灯片回调返回false,可以取消幻灯片 允许=此。\触发(“滑动”,事件{ 句柄:this.handles[index], 值:newVal } ); 如果(允许!==false){ 该值(newVal); } } } } $(“#滑块”)。滑块({ 最小值:“0”, 马克斯:“99”, 范围:对, 值:[0,99], 幻灯片:功能(事件、用户界面){ 如果(ui.values[0]>=ui.values[1]){ 如果(ui.handle==$(“#滑块a”)[0]){ $(“#slider”).slider(“值”,1,ui.value+1); ui.values[0]=ui.value; ui.value[1]=ui.value+1; }否则{ $(“#slider”).slider(“值”,0,ui.value-1); ui.value[0]=ui.value-1; ui.values[1]=ui.value; } } var minutes0=数学地板(ui.values[0]); var minutes1=数学地板(ui.values[1]); $('#开始输入').val(分钟0); $('#停止输入').val(分钟1); } });
小提琴: 现在,当我拖动处理程序时,更改会反映在文本框中Javascript 如何使滑块反映在输入框中所做的更改 $.ui.slider.prototype.\u slide=函数(事件、索引、newVal){ var otherVal, 新价值观, 允许; if(this.options.values&&this.options.values.length){ otherVal=该值(指数?0:1); if(newVal!==this.values(index)){ newValues=this.values(); newValues[index]=newVal; //通过从幻灯片回调返回false,可以取消幻灯片 允许=此。\触发(“滑动”,事件{ 句柄:this.handles[index], 值:newVal, 价值观:新价值观 } ); otherVal=该值(指数?0:1); 如果(允许!==false){ 此参数值(索引、newVal、true); } } }否则{ if(newVal!==this.value()){ //通过从幻灯片回调返回false,可以取消幻灯片 允许=此。\触发(“滑动”,事件{ 句柄:this.handles[index], 值:newVal } ); 如果(允许!==false){ 该值(newVal); } } } } $(“#滑块”)。滑块({ 最小值:“0”, 马克斯:“99”, 范围:对, 值:[0,99], 幻灯片:功能(事件、用户界面){ 如果(ui.values[0]>=ui.values[1]){ 如果(ui.handle==$(“#滑块a”)[0]){ $(“#slider”).slider(“值”,1,ui.value+1); ui.values[0]=ui.value; ui.value[1]=ui.value+1; }否则{ $(“#slider”).slider(“值”,0,ui.value-1); ui.value[0]=ui.value-1; ui.values[1]=ui.value; } } var minutes0=数学地板(ui.values[0]); var minutes1=数学地板(ui.values[1]); $('#开始输入').val(分钟0); $('#停止输入').val(分钟1); } });,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,小提琴: 现在,当我拖动处理程序时,更改会反映在文本框中 但是,如何才能使手动键入数字时,该更改反映在处理程序上?为输入添加事件处理程序,并更改滑块值: <div id='slider'></div> <div id='start'><input value="1"></div> <div id='stop'><input value="99"></div> $.ui.slider.prototy
但是,如何才能使手动键入数字时,该更改反映在处理程序上?为输入添加事件处理程序,并更改滑块值:
<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);
}
});
嘿,这很管用!谢谢,但是一旦输入值,这种方法会使其发生更改吗?因为现在,您需要按enter键或使用鼠标在文本框外单击才能看到更改?提前感谢,只需使用其中一个关键事件,如keyup,这里有一个。。。。。。。
$('#start input, #stop input').on('change', function() {
var val = [$('#start input').val(), $('#stop input').val()];
$("#slider").slider('values', val);
});