diff options
| -rw-r--r-- | framework/Web/Javascripts/source/prado/controls/slider.js | 31 | 
1 files changed, 21 insertions, 10 deletions
| diff --git a/framework/Web/Javascripts/source/prado/controls/slider.js b/framework/Web/Javascripts/source/prado/controls/slider.js index 2e26ee51..d612d654 100644 --- a/framework/Web/Javascripts/source/prado/controls/slider.js +++ b/framework/Web/Javascripts/source/prado/controls/slider.js @@ -18,17 +18,9 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl,  		this.maximum   = this.options.maximum || this.range.end;  		this.minimum   = this.options.minimum || this.range.start;  		this.hiddenField=$(this.options.ID+'_1'); +		this.trackInitialized=false; -		// Will be used to align the handle onto the track, if necessary -		this.alignX = parseInt(this.options.alignX || - this.track.offsetLeft); -		this.alignY = parseInt(this.options.alignY || - this.track.offsetTop); -		 -		this.trackLength = this.maximumOffset() - this.minimumOffset(); -		this.handleLength = this.isVertical() ?  -			(this.handle.offsetHeight != 0 ?  -				this.handle.offsetHeight : this.handles.style.height.replace(/px$/,"")) :  -				(this.handle.offsetWidth != 0 ? this.handle.offsetWidth :  -					this.handle.style.width.replace(/px$/,"")); +		this.initializeTrack();  		this.active   = false;  		this.dragging = false; @@ -64,6 +56,24 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl,  		if(this.options['AutoPostBack']==true)  			this.observe(this.hiddenField, "change", Prado.PostBack.bindEvent(this,options)); +	initializeTrack : function() +	{ +		if(this.trackInitialized || !$(this.track).is(":visible")) +			return; + +		// Will be used to align the handle onto the track, if necessary +		this.alignX = parseInt(this.options.alignX || - this.track.offsetLeft); +		this.alignY = parseInt(this.options.alignY || - this.track.offsetTop); + +		this.trackLength = this.maximumOffset() - this.minimumOffset(); +		this.handleLength = this.isVertical() ? +			(this.handle.offsetHeight != 0 ? +				this.handle.offsetHeight : this.handles.style.height.replace(/px$/,"")) : +				(this.handle.offsetWidth != 0 ? this.handle.offsetWidth : +					this.handle.style.width.replace(/px$/,"")); +		this.trackInitialized=true; +	}, +  	},  	setDisabled: function(){ @@ -151,6 +161,7 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl,  	startDrag: function(event) {  		if(Event.isLeftClick(event)) { +			this.initializeTrack();  			if(!this.disabled){  				this.active = true;  				var handle = Event.element(event); | 
