Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript YUI API双滑块控制问题_Javascript_Controls_Yui_Uislider - Fatal编程技术网

Javascript YUI API双滑块控制问题

Javascript YUI API双滑块控制问题,javascript,controls,yui,uislider,Javascript,Controls,Yui,Uislider,我正在使用YUI 2.7库处理网页中的双滑块(范围滑块)控件 它工作得很好——然而,我希望允许用户通过Ajax切换范围值——有效地将价格范围从“0-50000”更改为子集(例如“50-250”),而无需重新加载页面 问题是,现有滑块中的值似乎没有得到重置,即使我在“重建”滑块的函数中显式地将它们设置回NULL 在ajax请求之后,滑块控制柄出现不正确的位置(向右偏离比例),并且滑块的值明显随机波动 除了将YUI滑块对象的引用设置为null之外,还有没有其他方法可以显式销毁YUI滑块对象?或者我只

我正在使用YUI 2.7库处理网页中的双滑块(范围滑块)控件

它工作得很好——然而,我希望允许用户通过Ajax切换范围值——有效地将价格范围从“0-50000”更改为子集(例如“50-250”),而无需重新加载页面

问题是,现有滑块中的值似乎没有得到重置,即使我在“重建”滑块的函数中显式地将它们设置回NULL

在ajax请求之后,滑块控制柄出现不正确的位置(向右偏离比例),并且滑块的值明显随机波动

除了将YUI滑块对象的引用设置为null之外,还有没有其他方法可以显式销毁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;
    }
功能滑块(bg、minthumb、maxthumb、minvalue、maxvalue、startmin、startmax、aSliderName、soptions){
var scaleFactor=null;
var-tickSize=null;
var范围=零;
var dual_滑块=空;
var initVals=null;
var-Dom=null;
范围=选项。滑块长度;
if((startmax-startmin)
将startmin、startmax和scaleFactor存储在双U滑块对象上,然后在ajax回调中使用新值更新这些属性。将更改事件订阅服务器更改为引用this.startmin、this.startmax和this.scaleFactor

Slider和DualSlider只真正了解拇指的像素偏移,并报告值。正如您所做的(根据大多数滑块示例),您需要应用转换因子将像素偏移转换为“值”。这个常见的习惯用法已经被应用到YUI 3滑块的核心逻辑中(尽管库中还没有DualSlider)

以下示例演示了动态更新值范围:

谢谢卢克——这正是我想知道的,你也举了个例子来说明这一点!我感谢你的帮助。