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

标签 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。

谢谢

最佳答案

来自Docs对于设置值:

  • 参数:newValuetriggerSlideEventtriggerChangeEvent
  • 描述:

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);

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

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

关于javascript - Bootstrap-slider.js 不会以编程方式触发 setValue 更改功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47409165/

相关文章:

javascript - 替换引号(但不触及嵌套引号)

javascript - 如何在 Javascript 中重新加载没有 POSTDATA 警告的页面?

python - 背景虚化 | Jupyter 笔记本 | python |情节不显示

javascript - 使用外部链接将图像上传到 Strapi

javascript - Bootstrap 3 Modal,里面有文本区域。当点击/聚焦文本区域时,背景会滚动到顶部。仅限 iOS 8

jquery - Internet Explorer 鼠标输入可能的错误

javascript - 释放 handle 后是否可以阻止使用 slider

android - 想要像 Android 中的 Grofers 这样的着陆页 slider

jquery - 标题为 : have a resizing title that takes up all available space 的响应式菜单

jquery - 根据文本区域行调整 TD 高度