-4

我知道这听起来像是一个重复的问题,但我已经从 Stack Overflow 尝试了无数种东西,但它不起作用。我正在尝试做的事情涉及 noUiSlider 并且我试图基本上获取每个滑块的 3 个值,然后以任何我希望的方式使用这些值 - 例如,如果滑块的总值加起来,则打开或关闭下一个按钮到给定的值。

这是有问题的代码:

    // On document ready, initialize noUiSlider.
      $(function(){



        $('.guardsRanger').noUiSlider({
          start: [0],
          step: 1,
          behaviour: 'tap-drag',
          range: {
            'min': 0,
            'max': 8
          }
        }, true);

        $('.jacksRanger').noUiSlider({
          start: [0],
          step: 1,
          behaviour: 'tap-drag',
          range: {
            'min': 0,
            'max': 8
          }
        }, true);

        $('.strikersRanger').noUiSlider({
          start: [0],
          step: 1,
          behaviour: 'tap-drag',
          range: {
            'min': 0,
            'max': 8
          }
        }, true);

        $("#pips-values").noUiSlider_pips({
  mode: 'values',
  values: [1,2,3,4,5,6,7,8],
  density: 8
});

        $("#pips1-values").noUiSlider_pips({
  mode: 'values',
  values: [1,2,3,4,5,6,7,8],
  density: 8
});

        $("#pips2-values").noUiSlider_pips({
  mode: 'values',
  values: [1,2,3,4,5,6,7,8],
  density: 8
});


var guardsval;


$(".guardsRanger").on({
  set: function(){
    guardsval = $(".guardsRanger").val();
  }
});

$(".jacksRanger").on({
  set: function(){
    jacksval = $(".jacksRanger").val();
  }
});

$(".strikersRanger").on({
  set: function(){
    strikersval = $(".strikersRanger").val();
  }
});

alert(guardsval);

      });
4

1 回答 1

3

问题是,您不了解 JavaScript 中回调的概念。

请阅读以下问题: 有人可以解释一下回调函数吗

您的回调函数(它们是通过set属性设置的)guardsval仅在某些事件发生时(在这种情况set下,我猜是事件)操作变量。问题是,您调用alert(guardsval)guardsval尚未初始化。

于 2014-10-28T18:57:30.093 回答