Bootstrap-slider.js不会以编程方式触发setValue更改功能

时间:2017-11-21 09:07:30

标签: javascript jquery slider bootstrap-4

我正在使用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不会触发。

谢谢

1 个答案:

答案 0 :(得分:1)

来自Docs的setValue:

  • 参数newValuetriggerSlideEventtriggerChangeEvent
  • 描述
  

为滑块设置新值。如果可选的triggerSlideEvent参数为true,则滑动&#39;事件将被触发。 如果可选的triggerChangeEvent参数为true,则更改&#39;将触发事件。此函数将newValue作为Number,String,Array。如果值的类型为String,则它必须可转换为整数,否则将引发错误。

您通过以下方式致电setValue

$("#selec-temp").slider('setValue',[1550,1552],true);

这意味着triggerSlideEventtrue,而triggerChangeEvent false (默认值)。因此,不会触发任何更改事件。请改用以下内容:

  

$(&#34;#SELEC-TEMP&#34)滑块(&#39;的setValue&#39; [1550,1552],真实,TRUE);