【问题标题】:Bootstrap-slider.js are not trigger the setValue change function programmaticallyBootstrap-slider.js 不会以编程方式触发 setValue 更改功能
【发布时间】:2017-11-21 09:07:30
【问题描述】:

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

谢谢

【问题讨论】:

    标签: javascript jquery slider bootstrap-4


    【解决方案1】:

    来自Docs的setValue:

    • 参数newValuetriggerSlideEventtriggerChangeEvent
    • 说明

    为滑块设置一个新值。如果可选的 triggerSlideEvent 参数为 true,将触发 'slide' 事件。 如果可选的 triggerChangeEvent 参数为真,'change' 事件将被触发。 这个函数接受 newValue 作为一个数字,字符串,数组。如果值是 String 类型,则它必须可以转换为整数,否则会抛出错误。

    您通过以下方式拨打setValue

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

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

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

    【讨论】:

    • 感谢您的快速回答,效果很好,我只是错过了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2021-06-30
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多