4

.aspxページの結果をフィルタリングするために閉じた領域を選択する2つのハンドル(最小と最大)を持つカスタムステップを備えたjquery範囲スライダーがあります。確認ボタンをクリックすると、ページのポストバックが表示され、理想的な結果が表示されます。

でも、初めて右側のハンドルを動かしたいときは、左側のハンドルが動きます。現在のハンドルをログに記録すると、常に左側のハンドルが表示されます。理由がわかりません。

これは私のコードの一部です:

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」には2つのハンドルの値が含まれています。

編集

$(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 に答える