9

私は現在 Twitter のブートストラップ スライダーライブラリを使用しており、スライダーが初期化された後に最大値を変更する方法を見つけようとしています。値を取得する方法に関するこの質問は役に立ちましたが、呼び出す正確なメソッドをまだ見つけることができません。これが私がこれまで試してきたことです:

JS:

$('#slider').slider({
    max: 100
});
$('#slider').slider({
    max: 200
});
console.log($('#slider').data('slider').max)

コンソール:

100

値を直接設定して$('#slider').data('slider').maxも、値が変更されたとしても、スライダー自体の範囲は変更されません。最大値の設定またはスライダーの再初期化に関するヘルプは大歓迎です!!

4

6 に答える 6

9

refresh メソッドを呼び出す必要があります。次のコードはトリックを行います。

   $("#slider").slider('setAttribute', 'max', maxVal);
   $("#slider").slider('setAttribute', 'min', minVal);
   $("#slider").slider('refresh');
于 2015-01-26T13:17:57.597 に答える
2

これをさまざまな例で機能させるのに苦労し、最終的にこの構文でソートし、必要に応じて関数に追加しました。

strMin=3;
strMax=5;

$("#myslider").data('slider').min=strMin;

$("#myslider").data('slider').max=strMax;

$("#myslider").data('slider').value="[" + strMin + "," + strMax + "]";

$("#myslider").data('slider').setValue([strMin,strMax],true);
于 2015-01-13T13:23:23.650 に答える
0

あなたができる最善のことは、最小値と最大値を設定し、値を再適用することです. これはいくつかの方法で行うことができます。しかし、私がしたことは、最小値と最大値を設定する setMax および setMin 拡張メソッドを作成することでした。これに関する唯一の問題は、setMin および setMax 拡張メソッドが利用できなかったため、this の代わりに $this を拡張するようにプラグインを変更する必要があったことです。

では、これを変更して...

$this.data('slider', (data = new Slider(this, $.extend({}, $.fn.slider.defaults,options))));

...これに...

$this.data('slider', (data = new Slider($this, $.extend({}, $.fn.slider.defaults,options))));

...図書館で。独自の拡張メソッドを追加する場合。ただし、拡張メソッドのライブラリ内または外部で setValue を実行する必要があります。(setValue は、スライダー ハンドルの位置とスライダーのレイアウトを計算します)

だから、あなたはこのようなことをすることができます...

$('#sldOne').on('slideStop', function (ev) {
                $('#sldTwo').slider('setMin', 0);
                $('#sldTwo').slider('setMax', 4);
                $('#sldTwo').slider('setValue', new Number($('#sldTwo').val()));
            });

つまり、最初のスライダーの slideStop イベントで、2 番目のスライダーの最小値と最大値を設定します。そして、再度 setValue を呼び出してレイアウトをやり直します。

于 2014-04-17T08:58:29.233 に答える