3

オプションでjQueryノブを使用していますdata-displayPrevious=true

動作を少し変更する必要があります。

ユーザーが値を上に変更した場合、最大値で停止し、最大オーバーフロー後に最小値にジャンプしないようにする必要があります。また、ユーザーが値を下に変更すると、最小値で停止するはずです。まさにこのように: http://demo.tutorialzine.com/2011/11/pretty-switches-css3-jquery/

これで私を助けてくれませんか?

4

1 に答える 1

2

これは、実行できるアプローチの大まかな例です。http://jsfiddle.net/KjtSP/

戻るとドラッグを続行できないなど、いくつかの問題がありますが、それ以外は、コンセプトのかなり良い基礎として役立つはずです. 基本的に私がやっていることは、ノブが設定する前に設定したい値をチェックすることであり、いわば最大値を超えているか最小値を下回っているという基準に適合する場合、現在のマウスイベントをキャンセルします.

false を返すことで、プラグインが受け取った値を設定できないようにします。

var knob = $(".dial");
lastValue = 0;
max = 100;
min = 0;
variance = Math.floor(max / 5);

knob.knob({
    "change": function(v) {
        if (v > max - variance && lastValue < min + variance) {
            knob.val(0).change();
            return false;
        } else if (v < min + variance && lastValue > max - variance) {
            knob.val(100).change();
            return false;
        }
        lastValue = v;
    }
});​

アップデート

false を返すと新しい値の設定mouseup妨げられるため、できることはプロセスの継続を許可する ergo を呼び出すことではありません。私のコードを少し調整すると、次のfiddleになり、必要なことを実行できます。

このコードで遭遇する唯一のは、コードで設定された許容範囲またはしきい値を超えると、ノブその値になることですが、個人的にはそれが機能する方法だと思います.

于 2012-12-05T09:10:50.607 に答える