[英]Jquery UI Slider incorrect max value
我正在初始化一個jQuery ui滑塊,其值例如為.01,最小值為0.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 );
}
});
這是與float值有關的舍入誤差。 解決該問題的最簡單方法是使用整數:
$( "#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,而不是要查找的漂亮的,干凈的小數點后兩位數字。
快速修復-浮點數
在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;
注意*:您需要編輯和鏈接本地化的js文件。
注意**:檢查鏈接以指向jquery-ui.js而不是jquery-ui.min.js。
在v1.11.4上檢查
希望能幫助到你,
giannisepp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.