Javascript jQuery ui滑块最大值问题

Javascript jQuery ui滑块最大值问题,javascript,jquery,jquery-ui,slider,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Slider,Jquery Ui Dialog,我是jQueryUI新手,在初始化jQueryUI滑块时遇到问题。 我正在尝试创建一个具有最小值和最大值的滑块 滑块应该只有一个句柄,该句柄应该初始化为某个值,但它总是以某种方式设置为max。然而,我有一个span元素,在其中我写入滑块的实际值,并且该span中的值正确初始化 我按如下方式启动滑块: jQuery("#slider-range-min").slider({ range: "min", min: 3, slide: function( event, ui )

我是jQueryUI新手,在初始化jQueryUI滑块时遇到问题。 我正在尝试创建一个具有最小值和最大值的滑块

滑块应该只有一个句柄,该句柄应该初始化为某个值,但它总是以某种方式设置为max。然而,我有一个span元素,在其中我写入滑块的实际值,并且该span中的值正确初始化

我按如下方式启动滑块:

jQuery("#slider-range-min").slider({
    range: "min",
    min: 3,
    slide: function( event, ui ) {
        jQuery("#length").text(ui.value);
    }
});
嵌入滑块的对话框如下所示启动:

jQuery(".config_length").live('dblclick',function() {
    jQuery("#length-form").find("input[name=referer]").val(this.id);
    var max = jQuery(this).find("input[name$='_param']").val();
    var value = jQuery(this).find("input[name$='_value']").val();
    jQuery("#slider-range-min").slider("option","max", max);
    jQuery("#slider-range-min").slider("option","value", value);
    jQuery("#length").text(value);
    jQuery("#length-form").dialog("open");
});
“#slider range min”是滑块的id,#length form”是对话框的id,“#length”是跨度的id。 变量“max”和“value”都有正确的值(由Firebug控制)

例如,如果将“max”设置为250,将“value”设置为100,则跨度中的值将为100,滑块上的控制柄将位于最右边的位置(应该是250?),但只要我单击控制柄,跨度中的值将变为249

编辑 只有当“max”值大于100(这是max的默认值)时,才会出现问题。此外,我设置“max”和“value”的顺序似乎也会影响行为


我做错了什么?

实际上,当您将对象传递给“option”方法os slider(第二个代码段)时,它会覆盖现有值,这意味着如果在新的options对象中不重复,则所有初始选项都为空。 除此之外,“value”选项在语义上与初始值关联,如果要更改运行时值,则必须使用“value”方法

而不是

jQuery("#slider-range-min").slider("option",{
        max: max,
        value: value
    })
使用


我找到了一种方法让它工作,但我认为没有必要这样做:

    jQuery("config_length").live('dblclick',function() {
    jQuery("#length-form").find("input[name=referer]").val(this.id);
    var max = jQuery(this).find("input[name$='_param']").val();
    var value = jQuery(this).find("input[name$='_value']").val();
    if (max > 100) {
        jQuery("#slider-range-min").slider("option", "value", value).slider("option","max", max);
    } else {
        jQuery("#slider-range-min").slider("option","max", max).slider("option", "value", value);
    }
    jQuery("#length").text(value);
    jQuery("#length-form").dialog("open");
});

即使它现在起作用了,我想知道是否有“正确”的方法来做这件事。

Thx,但它没有帮助。我甚至将对话框(“打开”)移到了末尾,并在打开之前插入了一个警报(这给出了正确的值!)。如果我更改了滑块的值,则提交对话框并重新打开,新值将正确显示在滑块中。“value”值似乎以某种方式缓存在JavaScript中。
    jQuery("config_length").live('dblclick',function() {
    jQuery("#length-form").find("input[name=referer]").val(this.id);
    var max = jQuery(this).find("input[name$='_param']").val();
    var value = jQuery(this).find("input[name$='_value']").val();
    if (max > 100) {
        jQuery("#slider-range-min").slider("option", "value", value).slider("option","max", max);
    } else {
        jQuery("#slider-range-min").slider("option","max", max).slider("option", "value", value);
    }
    jQuery("#length").text(value);
    jQuery("#length-form").dialog("open");
});