Мне нужно обновить диапазон и числовое форматирование слайдера (формат) в зависимости от ввода пользователем. Поскольку формат не относится к числу параметров, которые я могу обновить с помощью метода updateOptions, мне нужно уничтожить слайдер и создать новый. Но события, которые я подключил к исходному слайдеру, перестали работать, хотя документы говорят, что «события не развязаны при уничтожении слайдера» https://refreshless.com/nouislider/more/ Что случилось с моим кодом? Есть ли способ связать события назад?События становятся несвязанными, когда я уничтожаю слайдер
var slider = document.getElementById('slider');
noUiSlider.create(slider, {
start: [ 1000000 ],
step: 1000,
connect: 'lower',
range: {
'min': [ 500000 ],
'max': [ 5000000 ]
},
format: rubleFormat
});
//code's getting redundant, I repeat it. Will fix later
function updateSlider(currency) {
if(currency == 'USD') {
slider.noUiSlider.destroy();
noUiSlider.create(slider, {
start: [ 10000 ],
step: 100,
connect: 'lower',
range: {
'min': [ 5000 ],
'max': [ 300000 ]
},
format: dollarFormat
});
}
else {
slider.noUiSlider.destroy();
noUiSlider.create(slider, {
start: [ 1000000 ],
step: 1000,
connect: 'lower',
range: {
'min': [ 500000 ],
'max': [ 5000000 ]
},
format: rubleFormat
});
}
}
Lg102, спасибо. Но похоже, что я слишком глуп, чтобы получить это. Насколько я понимаю, вы перезаписываете оригинальный метод get и что он начинает делать? Как он начинает работать? – Tyoma
Пробовал. Я создал слайдер и оставил опцию 'format' пустым. Затем я вставил ваш код и попытался обновить слайдер с помощью метода 'updateOptions()', чтобы изменить диапазон. Обновление работает, но ползунок теперь игнорирует формат https://jsfiddle.net/artdeev/5vshz44r/. Я не знаю, что с ним делать. Есть идеи? – Tyoma
Я обновил ваш пример в соответствии с описанием, которое вы дали. – Lg102