Jquery UI Slider不正确的最大值

时间:2015-01-08 22:46:06

标签: javascript jquery jquery-ui

我正在初始化一个jquery ui滑块,例如值为.01,最小值为.01,最大值为5000.我的问题是最大值停止在4999.990000000001。你能看出我做错了吗?

$( "#sliderModal" ).slider({
    value:r.min_price/100,
    min: r.min_price/100,
    max: r.max_price/100,
    step:0.01,
    slide: function( event, ui ) {
       $( "#amountModal" ).val(ui.value );
    }
});

2 个答案:

答案 0 :(得分:1)

它是与浮点值相关的舍入误差。修复它的最简单方法是使用整数:

$( "#sliderModal" ).slider({
    value:r.min_price,
    min: r.min_price,
    max: r.max_price,
    step:1,
    slide: function( event, ui ) {
        $( "#amountModal" ).val(ui.value*100);
    }
});

请注意,我已删除了所有/100次操作,并将该值乘以100。

这假定该值未显示为数字 - 如果是,您将获得该数字乘以100而不是您那么漂亮,整齐的两位小数位数寻找。

答案 1 :(得分:1)

快速修复 - 浮动数字

jquery-ui.js _calculateNewMax 功能中,更改

Math.floor(..

Math.round(..

所以,如果有

aboveMin = Math.floor((+(max-min).toFixed(this._precision()))/step)*step;

aboveMin = Math.round((+(max-min).toFixed(this._precision()))/step)*step;

注意*:你需要编辑和链接modded js文件localy。

注意**:检查指向jquery-ui.js的链接,而不是jquery-ui.min.js

检查v1.11.4

希望它有所帮助,

giannisepp