jQuery ui滑块错误的ui值

时间:2017-03-06 13:19:15

标签: javascript jquery jquery-ui

我像这样初始化我的滑块:

  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 functionui.values[1]内得到 19,9 的值。因为我需要阻止用户移动第二个句柄,所以我这样检查:

  if (ui.values[1] != high){
       return false;
  }

现在 20不等于19,9 ,用户无法移动任何句柄。有什么想法吗?

2 个答案:

答案 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,依此类推。希望它会有所帮助。

相关问题