我正在使用 bootstrap-slider.js
。一切正常,但使用 setValue
设置新值不会触发 "change"
函数。
HTML:
<div id="barra-temp">
<input id="selec-temp" type="text"/>
</div>
JavaScript:
var barratemp = $("#selec-temp").slider({
id: "slider-temp",
min: 1500,
max: 1850,
tooltip: 'always',
tooltip_split: true,
range: true,
formatter: function(value) {
return 'Año: ' + value;
}
});
barratemp.on('change',function(val){
console.log('It works');
});
更新值的代码:
$("#selec-temp").slider('setValue',[1550,1552],true);
处理程序移动到新位置,但不会触发 triggerChangeEvent。
谢谢
最佳答案
来自Docs对于设置值:
- 参数:
newValue
、triggerSlideEvent
、triggerChangeEvent
- 描述:
Set a new value for the slider. If optional triggerSlideEvent parameter is true, 'slide' events will be triggered. If optional triggerChangeEvent parameter is true, 'change' events will be triggered. This function takes newValue as either a Number, String, Array. If the value is of type String it must be convertable to an integer or it will throw an error.
您正在通过以下方式调用 setValue
:
$("#selec-temp").slider('setValue',[1550,1552],true);
这意味着 triggerSlideEvent
为 true
,而 triggerChangeEvent
为 false
(默认)。因此不会触发更改事件。请改用以下内容:
$("#selec-temp").slider('setValue',[1550,1552],true,true);
关于javascript - Bootstrap-slider.js 不会以编程方式触发 setValue 更改功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47409165/