jquery滑块步长以10s递增,但最小值为1

时间:2013-05-20 13:40:58

标签: jquery-ui

我有一个问题,我希望步骤从1开始递增10到最大1000.

问题在于,如果值为1,则下一个值为11然后是21等。如何更改它以使其从1,10,20,30等变为1,因此第一步是9,然后是10然后。

有时价值也可以达到1001,我认为如果你快速下滑到最大值,它会停在1000,但如果你停在991,如果你采取最后一步,它将超过1000

<p>
    <label for="amount">Maximum price:</label>
    <input type="text" id="amount" style="border: 0; color: #f6931f; font-weight: bold;" />
</p>
<div id="slider-range-min"></div>

$("#slider-range-min").slider({
    range: "min",
    value: 1000,
    min: 1,
    step: 10,
    max: 1000,
    slide: function (event, ui) {
        $("#amount").val("$" + ui.value);
    }
});
$("#amount").val("$" + $("#slider-range-min").slider("value"));

http://jsfiddle.net/zwTnY/

1 个答案:

答案 0 :(得分:3)

将范围从1-1000更改为0-1000并在滑动或停止时添加检查以查看值是否为零。如果是,请将其更改为1.

<强> jsFiddle example

$("#slider-range-min").slider({
    range: "min",
    value: 500,
    min: 0,
    step: 10,
    max: 1000,
    slide: function (event, ui) {
        $("#amount").val("$" + ui.value);
        if (ui.value == 0) {
            $("#slider-range-min").slider('value', 1);
            $("#amount").val('$1');
        }
    },
    stop: function (event, ui) {
        if (ui.value == 0) {
            $("#slider-range-min").slider('value', 1);
            $("#amount").val('$1');
        }
    }
});
$("#amount").val("$" + $("#slider-range-min").slider("value"));