Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NoUIslider-按需更新范围_Javascript_Jquery_Uislider_Nouislider - Fatal编程技术网

Javascript NoUIslider-按需更新范围

Javascript NoUIslider-按需更新范围,javascript,jquery,uislider,nouislider,Javascript,Jquery,Uislider,Nouislider,我有两个滑块,我想根据另一个滑块的移动来更新一个滑块的范围 比如,;滑块_1和滑块_2的范围均为1-10。 当我将滑块_1从位置1移动到2时,滑块_2的范围从1-10更改为1-20。 如果我将滑块_1从位置2移动到3,滑块_3现在的范围为1-30,依此类推 我初始化滑块,如下所示: function slider() { $(".slider").noUiSlider({ orientation: "horizontal", s

我有两个滑块,我想根据另一个滑块的移动来更新一个滑块的范围

比如,;滑块_1和滑块_2的范围均为1-10。 当我将滑块_1从位置1移动到2时,滑块_2的范围从1-10更改为1-20。 如果我将滑块_1从位置2移动到3,滑块_3现在的范围为1-30,依此类推

我初始化滑块,如下所示:

  function slider() {
        $(".slider").noUiSlider({
            orientation: "horizontal",
            start: [0],
            range: {
                min: 0,
                max: 10,
            },
            connect: 'lower',
            direction: "ltr",
            step: 1,
        });
    };
到目前为止,我能想到的最好的实现方法是解构整个滑块,并每次用新的范围重新初始化它。 但是,我不确定如何正确解构滑块


关于如何实现这一点有什么想法吗?

noUiSlider提供了一个
updateOptions
方法,该方法将保留所有设置,除了您传递的任何新设置。这个

从noUiSlider 8开始,您可以执行以下操作:

slider.noUiSlider.updateOptions({
    range: {
        'min': 20,
        'max': 30
    }
});
披露:我是插件作者。

您可以通过将对象作为参数传递来使用更新选项函数。您可以通过编程方式构建自己的“配置对象”,如下所示:

config = {
        orientation: "horizontal",
        start: [100,200],
        range: {
            min: 0,
            max: 200,
        },
        connect: 'lower',
        direction: "ltr",
        step: 10,
    };
然后在Javascript中的任意位置更新滑块:

 $(".slider").updateOptions(config);

您需要调用
destroy()
,然后调用
create()
来动态更改范围。渲染控件后,无法更改范围

slider.noUiSlider.destroy()
slider.noUiSlider.create({
    range: {
        'min': 20,
        'max': 30
    }
});

就这样。谢谢你的帮助!我不确定我怎么会在文档中遗漏了这一点。伟大的插件顺便说一句。嗨,我如何在vue.js版本的插件中实现这一点,我一直在尝试绑定范围,但没有受到影响@LG102这适用于更新步骤或启动。例如:如果您有一个范围为数百万的滑块,并且希望提供一个使用输入更改滑块的alt方法。您可以随时使用新的开始值销毁和重新创建滑块。