如何设置jQuery UI滑块的最小/最大间隔和值?

时间:2014-10-24 07:51:14

标签: javascript jquery

我遇到了jQuery UI Slider的问题。

我有一个函数“Pricer()”和我给它的参数:

1)min_price,max_price - 区间范围(min_price ------------- max_price)

2)start_price,end_price - subintervalval(最小价格---- start_price -------- end_price ----- max_price)

代码:

function Pricer(min_price, max_price, start_price, end_price) {
    $( "#slider_price" ).slider({
        range: true,
        min: min_price,
        step:10,
        max: max_price,
        values: [start_price,  end_price ],
        slide: function( event, ui ) {
            $('#price1').val(ui.values[0]);
            $('#price2').val(ui.values[1]);
        }
    });

    $('#price1').change(function () {
        $('#slider_price').slider("values",0, $(this).val());
    });

    $('#price2').change( function() {
        $('#slider_price').slider("values",1,$(this).val());
    });

    $('#price1').val($('#slider_price').slider("values",0));
    $('#price2').val($('#slider_price').slider("values",1));
};

我按顺序调用此函数两次:

1)在document.ready事件上。 (Pricer(4,536,4,536);)

2)我应该为滑块设置新值。 (Pricer(4,536,11,12))

得到错误的间隔:

$('#slider_price').slider('values', 0) 

$('#slider_price').slider('values', 1)

返回值'14'和'14'。

我调试它,发现它在我发送到slider()的对象中设置values属性时发生。

我没有在jQuery UI滑块中找到开放的错误报告。可能是我对jQuery UI滑块工作的误解?

1 个答案:

答案 0 :(得分:1)

这与您将step设置为10的事实有关。由于您的范围以4开头,因此下一个最接近11和12的值为14。

Slider Widget API doc关于步骤说明:

(步骤)确定滑块在最​​小值和最大值之间的每个间隔或步长的大小或数量。滑块的完整指定值范围(max - min)应该可以被步长整除。