jquery-ui-slider:运行时“步长”更改后的错误步骤

时间:2013-10-23 08:04:15

标签: jquery jquery-ui jquery-ui-slider

我已经构建了一个滑块,可以使用此范围更改其步长

  • 从1到19,步长为1
  • 从20到100,步长为10。

    //stepping from 1 to 20  in steps of 1
    if (ui.value < 20) {
        $(this).slider('option', 'step', 1);
    }
    
    //stepping from 20 to  100 in steps of 10
    if (ui.value >= 20 && ui.value <= 100) {
        $(this).slider('option', 'step', 10);
    }
    

然后我用ui.value计算一些其他值

这是一个小提琴:http://jsfiddle.net/Z5BYY/

但是当我在此边框上滑动时,计算的值不正确,滑动手柄会产生不需要的结果

  • 句柄跳跃从20到31,而不是30和10的倍数
  • 我乘以20的结果是42
  • 最大值设置为100,但我可以滑到101

任何想法,我如何解决这个问题?谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

你可以试试这个

//stepping from 1 to 20  in steps of 1
if (ui.value < 20) {
    $( this ).slider( "option", "min", 1 );
    $(this).slider('option', 'step', 1);
}

//stepping from 20 to  100 in steps of 10
if (ui.value >= 20 && ui.value <= 100) {
    $( this ).slider( "option", "min", 0 );
    $(this).slider('option', 'step', 10);
}

我认为它会奏效!