これは、実行できるアプローチの大まかな例です。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になり、必要なことを実行できます。
このコードで遭遇する唯一の癖は、コードで設定された許容範囲またはしきい値を超えると、ノブがその値になることですが、個人的にはそれが機能する方法だと思います.