Я использую библиотеку YUI 2.7 для управления двойным ползунком (ползунком диапазона) на веб-странице.
Это прекрасно работает, однако я хотел, чтобы пользователи могли переключать значения диапазона с помощью Ajax, эффективно меняя диапазон цен с «0–50 000» на подмножество (например, «50–250») без перезагрузки страницы.
Проблема в том, что кажется, что значения из существующего ползунка не сбрасываются, даже когда я явно устанавливаю их обратно в NULL внутри функции, чтобы «перестроить» ползунок.
Ручки ползунка появляются не на своем месте после запроса ajax (вне шкалы вправо), а значения ползунка, по-видимому, колеблются случайным образом.
Есть ли способ явно уничтожить объект ползунка YUI, помимо установки его ссылки на ноль? Или мне просто нужно каким-то образом повторно объявить масштаб и минимальные/максимальные значения?
Спасибо за любую помощь (постараюсь как можно скорее опубликовать ссылку на пример)
вот код:
function slider(bg,minthumb,maxthumb,minvalue,maxvalue,startmin,startmax,aSliderName,soptions) {
var scaleFactor = null;
var tickSize = null;
var range = null;
var dual_slider = null;
var initVals = null;
var Dom = null;
range = options.sliderLength;
if ((startmax - startmin) < soptions.sliderLength) {
tickSize = (soptions.sliderLength / (startmax - startmin));
}else{
tickSize = 1;
}
initVals = [ 0,soptions.sliderLength ], // Values assigned during instantiation
//Event = YAHOO.util.Event,
dual_slider,
scaleFactor = ((startmax - startmin) / soptions.sliderLength);
dual_slider = YAHOO.widget.Slider.getHorizDualSlider(
bg,minthumb,maxthumb,range, tickSize, initVals);
dual_slider.subscribe("change", function(instance) {
priceMin = (dual_slider.minVal * scaleFactor) + startmin;
priceMax = (dual_slider.maxVal * scaleFactor) + startmin;
});
dual_slider.subscribe("slideEnd", function(){ alert(priceMin + ' ' + priceMax); });
return dual_slider;
}