意料之中的':',反而看到了'_variableName'



我很困惑在哪里声明这些变量,这样我就可以用作 obj.slider._minVal&obj.slider._maxVal。我遇到了jshint错误:

var _minval = 75; ^预期':',而是看到'_minval'。 var _minval = 75; ^期望标识符,而是看到'='。

var obj = obj || {};
obj.slider = {
var _minVal=75, //Confused where to define these variables so it's available 
    _maxVal=300;//in _createSlider();
init:function(){
    console.log('Initialization of Slider');
    var $this = $(this);
    this._createSlider();
    return false;
},
// setSliderMin:function(sliderId, minVal){
// },
_createSlider:function(){
    $('.slider-range').slider({
      range: true,
      min: obj.slider._minVal,
      max: obj.slider._maxVal,
      values: [obj.slider._minVal, obj.slider._maxVal],
      slide: function( event, ui ) {
        $( '#amount' ).val( '$' + ui.values[ 0 ] + ' - $' + ui.values[ 1 ] );
        var handle = $(this).find('.ui-slider-handle');
        $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[0] + '</div></div>');
        $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[1] + '</div></div>');
      }
    });
    var value = $( '#slider-range' ).slider( 'option', 'values' );
    $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[0] + '</div></div>');
    $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[1] + '</div></div>');
}
};
obj.slider.init();
});

成员变量的语法与成员函数相同:

key1: val,
key2: val

更改对象以使用键/值语法:

obj.slider = {
    _minVal: 75,
    _maxVal: 300,
    _createSlider: function() {...},
    init: function() {...}
};

另外,如果您想要隐藏的变量以及更自然的代码,则可能需要使用功能:

obj.slider = function() {
    var _minVal = 75,
        _maxVal = 300,
        _createSlider = function() {...};
    (this.init = function() {...})();
};
var slider = new obj.slider();
// later on you can reset by calling
slider.init();

jsfiddle

使用:创建属性,然后与this一起使用: -

var obj = obj || {};
obj.slider = {
  _minVal: 75,
  _maxVal: 300,
  init: function() {
    console.log('Initialization of Slider');
    var $this = $(this);
    this._createSlider();
    return false;
  },
  _createSlider: function() {
    $('.slider-range').slider({
      range: true,
      min: this._minVal,
      max: this._maxVal,
      values: [this._minVal, this._maxVal],
      slide: function(event, ui) {
        $('#amount').val('$' + ui.values[0] + ' - $' + ui.values[1]);
        var handle = $(this).find('.ui-slider-handle');
        $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[0] + '</div></div>');
        $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[1] + '</div></div>');
      }
    });
    var value = $('#slider-range').slider('option', 'values');
    $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[0] + '</div></div>');
    $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[1] + '</div></div>');
  }
};
obj.slider.init();

@beng的答案很棒,但是您也可以创建一个类,而不是使用JSON对象字面形式来使您的变量/函数私有。

var obj = obj || {};
obj.slider = function(){
  var _minVal = 75;
  var _maxVal = 300;
  console.log('Initialization of Slider');
  var $this = $(this);
  _createSlider();
  return false;
  function _createSlider() {
    $('.slider-range').slider({
      range: true,
      min: _minVal,
      max: _maxVal,
      values: [_minVal, _maxVal],
      slide: function(event, ui) {
        $('#amount').val('$' + ui.values[0] + ' - $' + ui.values[1]);
        var handle = $(this).find('.ui-slider-handle');
        $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[0] + '</div></div>');
        $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[1] + '</div></div>');
      }
    });
    var value = $('#slider-range').slider('option', 'values');
    $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[0] + '</div></div>');
    $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[1] + '</div></div>');
  }
};
new obj.slider();

相关内容

  • 没有找到相关文章

最新更新