我像这样初始化我的滑块:
var min = 0.1;
var max = 20;
var low = 0.1;
var high = 20;
var step = 0.1;
$(this).slider({
range: true,
min: min, // 0.1
max: max, // 20
values: [ low, high ], // 0.1 | 20
step: step, // 0.1
animate: "slow",
slide: function(event, ui) { ... }
哪个是完美的,除非我的值max / high是20。
在这种情况下,slide function
在ui.values[1]
内得到 19,9 的值。因为我需要阻止用户移动第二个句柄,所以我这样检查:
if (ui.values[1] != high){
return false;
}
现在 20不等于19,9 ,用户无法移动任何句柄。有什么想法吗?
答案 0 :(得分:1)
你遇到的问题是,你的最小值为0.1,女巫是一个漂浮值。如果你从0开始它将起作用。而且我认为你应该检查if (ui.values[1] == high)
var min = 0;
var max = 20;
var low = 0.1;
var high = 20;
var step = 0.1;
$("#slider").slider({
range: true,
min: min, // 0.1
max: max, // 20
values: [low, high], // 0.1 | 20
step: step, // 0.1
animate: "slow",
slide: function(event, ui) {
console.log(ui.values)
if (ui.values[1] == high) {
return false;
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css">
<div id="slider"></div>
答案 1 :(得分:1)
问题可能出在浮点数上。因此,您最好使用乘以10的值,并假设1代表0.1,200代表20,依此类推。希望它会有所帮助。