jQuery旋钮停在最大值

时间:2012-12-05 08:10:59

标签: jquery jquery-knob

我正在使用jQuery knob选项data-displayPrevious=true

我需要改变一下行为:

如果用户更改了值,它应该停在最大值,并且在溢出最大值后不会跳到最小值。如果用户更改值,则应至少停止。 完全像这样:http://demo.tutorialzine.com/2011/11/pretty-switches-css3-jquery/

请帮帮我吗?

1 个答案:

答案 0 :(得分:2)

这是你可以做的一个粗略的例子。 http://jsfiddle.net/KjtSP/

它有一些问题,比如你回去时不会继续阻力,但除此之外它应该是你概念的一个很好的基础。基本上我正在做的是检查旋钮想要设置的值,如果它符合超过最大值或低于最小值的标准,可以这么说,我取消当前的鼠标事件。 / p>

通过返回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,可以让你做你想做的事。

您遇到此代码的唯一 quirk 是,如果超过代码中设置的容差或阈值,您的旋钮转到该值,但是我相信它应该如何运作。