【问题标题】:noUiSlider multirange accessing first handlenoUiSlider 多范围访问第一个句柄
【发布时间】:2019-12-07 20:03:57
【问题描述】:

我正在尝试构建一个带有多个句柄的 noUiSlider,我可以在其中获取表单提交的各个句柄之间的值。我可以访问所有句柄的值,但不能访问第一个。试图在 console.log 上获取它的 id 什么也没给我。如何访问第一个句柄? 我的例子在这里: Codepen Example

var multirange = document.getElementById("my-slider");
//initialize the slider
noUiSlider.create(multirange, {
  start: [1, 3, 6, 7],
  connect: [true, true, true, true, true],
  tooltips: [true, true, true, true],
  behaviour: "tap-drag",
  step: 0.25,
  range: {
    min: [0],
    max: [8]
  }
});

multirange.noUiSlider.on("update", function(values, handle) {
  var value = values[handle];

  if (handle) {
    //for debugging check the id of the current handle
    console.log(handle);
    //get the id of the corresponding input field
    var inputid = "input-number" + handle;
    //first handle value does not need to be processed further
    if (handle !== 0) {
      //get previous handle id field
      var prvid = handle - 1;
      //get previous handle value
      var prvvalue = values[prvid];
      //difference between current and previous value
      var diffvalue = value - prvvalue;
      var inputNumber = document.getElementById(inputid);
      inputNumber.value = diffvalue;
    } else {
      //first handle value should directly be written into the input field
      inputNumber.value = value;
    }
  }
});

【问题讨论】:

  • if (handle) { 是你的问题。第一个句柄是0,它转换为false,删除它,它应该可以工作

标签: javascript nouislider


【解决方案1】:

谢谢Alon

那是我的错误。 将 if 更改为

if (handle  !== undefined  ) {

现在也捕获 id 为 0 的句柄

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多