如何在没有无限事件的情况下在两个滑块之间切换?
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');
我在 noUiSlider 的使用方面遇到了一个棘手的问题。我有两个滑块,我想根据需要进行切换。
现在的问题是,一个是从左到右,一个是从右到左。如果我现在销毁滑块并创建一个新的滑块,一切都会像魅力一样。但问题是,由于我绝对需要避免的破坏,'slide' 事件将被解除绑定。
有什么解决方法吗?
您有一些选择:
您可以创建两个滑块(一个从左到右,一个从右到左),将事件处理程序附加到两者,并隐藏不用的那个;
或者,您可以在重新创建滑块后重新添加相同的事件处理程序。
作为伪代码:
function initializeSlider(direction) {
var slideEventHandler = function () { /***/ }
var slider = noUiSlider.create( /.../ );
slider.noUiSlider.on('slide', slideEventHandler);
}
initializeSlider('rtl');
// ....
slider.noUiSlider.destroy();
initializeSlider('ltr');