4

我有一个带有自定义步骤的 jquery范围滑块,它有两个句柄(最小和最大),在我的 .aspx 页面中选择一个封闭区域来过滤结果。一旦我点击确认按钮,页面回发并显示我的理想结果。

但是我第一次想移动右边的手柄时,左边的手柄会移动。当我记录当前句柄时,它始终是左侧显示的句柄。我不明白为什么。

这是我的代码的一部分:

var stepvalues = ["0", "3000", "5000"];
$("#slider-range").slider({
     range: true,
     min: 0, 
     max: 2,
     step: 1, 
     values: [0, 5000],
     slide: function (event, ui) {
     console.log($(ui));            
     console.log($(ui.handle));
     }
});

你有什么线索吗?

非常感谢你。

编辑

我想要做的是最小/最大范围是从 0 到 5000,当我移动滑块时有 3 个可能的值。它只能是 0 或 3000 或 5000。

现在我可以移动滑块以显示相对值,并且在我提交表单进行搜索时它可以工作。但是一旦它进行回发,当我第一次移动右边的滑块时,左边的滑块就会移动。这对我来说是一个奇怪的行为。我希望它正常工作。

当我登录“ui”时,它有几个属性:

Object { handle=a.ui-slider-handle, value=3, values=[2]}

“ui.handle”的值始终是我滑块中的第一个句柄;
“ui.value”的值总是第一个句柄的值;
而“ui.values”包含两个句柄的值。

编辑

我发现很难操纵 $(ui.handle),我使用以下代码来解决我的问题。

$("#slider-range").slider('option', 'values', [min, max]);
4

2 回答 2

1

由于我自己解决了这个问题,所以我将工作代码放在这里并将其标记为已解决!

$("#slider-range").slider('option', 'values', [min, max]);
于 2012-10-25T09:21:20.413 回答
0

如果您不知道自己的 ID:

$(ui.handle).parent().slider('option', 'values', [min, max]);
于 2013-08-01T12:55:24.310 回答