1

ページに 2 つのスライダーがあるページがありますが、特別なものはありません。ただし、スライダーの値を操作しているときに、スライダーを制御するための外部ボタンを使用しているときに、奇妙な問題が見つかりました。

これが私のスライダーです。

var slider = $("#amount_slider").slider({
        value: amount,
        min: min_amount,
        max: max_amount,
        step: step,
        slide: function( event, ui ) {
            $("#CREDIT").val(ui.value);
            handle_amount.qtip('option', 'content.text', '€ ' + FormatNumber(ui.value));
        },
        change: function( event, ui ) {
            $("#CREDIT").trigger('blur');
            Calculate();
        }
    });

console.log($("#amount_slider").slider("value"));
console.log($("#amount_slider").slider("option", "value"));

これらの出力を実行すると、2 つの異なる結果が得られます。結果は 25000 になるはずですが、24500 と 25000 になります。ui.value には 24500 もあります...

誰かが私を助けてくれることを願っています:-)

バグをいじりたい場合: http://jsfiddle.net/xzhgd/

4

1 に答える 1

0

私の同僚のおかげで、問題と解決策を見つけることができました。2500 の最小値と 2000 のステップを指定すると、25000 の指定値に到達できないため、スライダーはこれを実際に到達可能な 24500 に変更します。

これはUIの「設計上の問題」だと思います。値を正しくして、最小値と最大値をより厳密に調整したいからです。結局のところ、正しい値が必要であり、より厳密な境界線は正しい値を意味します。これが私がこれをどのように解決したかで、「私のやり方」で動作します。

var factor = Math.Floor((amount - min_amount) / step);
var real_min = amount - (factor * step);

そして、スライダーの最小値として real_min を割り当てます。

于 2013-07-24T10:17:58.100 に答える