初始化后更改最小值后jquery范围滑块不滑动

时间:2010-04-21 15:23:14

标签: javascript jquery slider

我在加载页面时初始化我的范围滑块:

$("#slider").slider({
            range: true,
            min: 634606,
            max: 734818,
            step: 1,
            values: [634606, 734818]
})

关于用户输入(html表单)我使用ajax请求从服务器检索数据。数据必须限制滑块(用户输入)。我正在尝试使用以下语法实现此目的:

// set new data values
$('#slider').slider('values',1, time[1]);
$('#slider').slider('values',0, time[0]);
// set new min/max limits
$("#slider").slider("option","max", time[1] );
$("#slider").slider("option","min", time[0] );

使用min选项后,手柄将无法再移动。如果我评论最后一行,可以移动句柄。 我处理滑块错了吗?我甚至试图破坏滑块并用新值重新启动它,没有运气......

2 个答案:

答案 0 :(得分:2)

我发现了真正的问题......问题是时间数组包含字符串值而不是数字。这是来自ajax请求。这与滑块处理程序相矛盾。

我用以下代码解决了它:

$("#slider").slider("option","max", parseFloat(time[1]) );
$("#slider").slider("option","min", parseFloat(time[0]) );

感谢您提供的信息!

答案 1 :(得分:0)

您可以通过传入一个对象来设置值,如下所示:

$("#slider").slider({ min: time[0], max: time[1], values: time });

如果time[]中包含更多值,那么您的对象应该是这样的:

$("#slider").slider({ min: time[0], max: time[1], values: [time[0], time[1]] });

像上面的代码那样做可以解决你的最小/最大问题,如果你想坚持你当前的方法,然后设置这样的值:

$("#slider").slider("option", "values", time); //or...
$("#slider").slider("option", "values", [time[0],time[1]]);