首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery ui滑块最大值问题

jQuery ui滑块最大值问题
EN

Stack Overflow用户
提问于 2010-12-10 16:25:12
回答 2查看 5.6K关注 0票数 2

我刚接触jQuery-ui,在初始化jquery-ui-slider时遇到了问题。我正在尝试创建一个具有最小和最大值的滑块。

滑块应该只有一个句柄,它应该被初始化为某个值,但不知何故,它总是被设置为max。然而,我有一个span元素,我在其中写入了滑块的实际值,并且此span中的值被正确初始化。

我按如下方式启动滑块:

代码语言:javascript
复制
jQuery("#slider-range-min").slider({
    range: "min",
    min: 3,
    slide: function( event, ui ) {
        jQuery("#length").text(ui.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();
    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”和“value”的顺序似乎也会影响行为。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-10 18:46:49

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

代码语言: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");
});

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

票数 1
EN

Stack Overflow用户

发布于 2010-12-10 16:42:45

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

而不是

代码语言:javascript
复制
jQuery("#slider-range-min").slider("option",{
        max: max,
        value: value
    })

使用

代码语言:javascript
复制
jQuery("#slider-range-min").slider("option","max", max).slider("value", value);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4406919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档