如何访问函数内的变量?

时间:2014-10-28 18:38:34

标签: javascript nouislider

我知道这可能听起来像是一个重复的问题,但我已经尝试过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);

      });

1 个答案:

答案 0 :(得分:2)

问题是,你不了解JavasScript中回调的概念。

请阅读以下问题: Can someone explain me the callback functions

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