我正在使用YUI 2.7库来处理网页中的双滑块(范围滑块)控件。YUI API双滑块控件问题
它工作的很好 - 但是,我希望允许用户通过Ajax切换范围值 - 有效地将价格范围从“0-50,000”更改为子集(例如“50-250”)而无需重新加载这一页。
问题是,它看起来从现有滑块的值不会重置,即使我明确地将它们重新设置为NULL函数内部以“重建”滑块。
滑块手柄在ajax请求后出现位置偏移(向右移动缩放比例)并且滑块的值显然随机波动。
有没有一种方法来显式销毁YUI滑块对象,除了将其引用设置为null?或者我只需要以某种方式重新声明缩放比例和最小/最大值?
感谢所有帮助(我会尝试发布一个链接到一个例子ASAP)
下面的代码:
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;
}
感谢Luke--这就是我想知道,你用一个例子太钉下来!我很感激帮助。 – julio 2010-10-29 16:04:04