我很困惑在哪里声明这些变量,这样我就可以用作 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();