.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]);