如何在没有无限事件的情况下在两个滑块之间切换?

How to toggle between two sliders without unbounding events?

我在 noUiSlider 的使用方面遇到了一个棘手的问题。我有两个滑块,我想根据需要进行切换。

现在的问题是,一个是从左到右,一个是从右到左。如果我现在销毁滑块并创建一个新的滑块,一切都会像魅力一样。但问题是,由于我绝对需要避免的破坏,'slide' 事件将被解除绑定。

有什么解决方法吗?

您有一些选择:

您可以创建两个滑块(一个从左到右,一个从右到左),将事件处理程序附加到两者,并隐藏不用的那个;

或者,您可以在重新创建滑块后重新添加相同的事件处理程序。

作为伪代码:

function initializeSlider(direction) {
    var slideEventHandler = function () { /***/ }

    var slider = noUiSlider.create( /.../ );

    slider.noUiSlider.on('slide', slideEventHandler);
}


initializeSlider('rtl');

// ....

slider.noUiSlider.destroy();

initializeSlider('ltr');