diff options
author | uacaman <> | 2011-03-10 20:56:05 +0000 |
---|---|---|
committer | uacaman <> | 2011-03-10 20:56:05 +0000 |
commit | d4cab2e2e139095b95bfb2cae74ccb13ae4f91d1 (patch) | |
tree | 3a13ecb2db30bd5f4ced10663f322fa8f83eed33 /framework/Web/Javascripts | |
parent | 7719267ac491073581e93231c9efdf2c2362bcba (diff) |
Issue 181: Events are now removed and added for every postback/callback
Diffstat (limited to 'framework/Web/Javascripts')
4 files changed, 29 insertions, 1 deletions
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js index e96b63ec..68d0e429 100755 --- a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js @@ -13,6 +13,10 @@ Prado.WebUI.TActiveDatePicker = Class.extend(Prado.WebUI.TDatePicker, this.selectedDate = this.newDate(); this.positionMode = 'Bottom'; + + // Issue 181
+ $(this.control).stopObserving(); + //which element to trigger to show the calendar if(this.options.Trigger) { @@ -24,6 +28,9 @@ Prado.WebUI.TActiveDatePicker = Class.extend(Prado.WebUI.TDatePicker, this.trigger = this.control; var triggerEvent = this.options.TriggerEvent || "focus"; } +
+ // Issue 181
+ $(this.trigger).stopObserving(); // Popup position if(this.options.PositionMode == 'Top') diff --git a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js index 547f09dc..6a6892cf 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js @@ -30,6 +30,8 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( this.onclickListener = this.enterEditMode.bindAsEventListener(this);
Event.observe(this.element, 'click', this.onclickListener);
if (this.options.ExternalControl)
+ // Issue 181
+ $(this.options.ExternalControl).stopObserving('click', this.onclickListener);
Event.observe($(this.options.ExternalControl), 'click', this.onclickListener);
},
@@ -127,7 +129,10 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( this.editField.style.display="none";
this.element.parentNode.insertBefore(this.editField,this.element)
-
+
+ // Issue 181
+ $(this.editField).stopObserving();
+
//handle return key within single line textbox
if(this.options.TextMode == 'SingleLine')
{
diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js index 14853dca..dd19a1a7 100644 --- a/framework/Web/Javascripts/source/prado/controls/controls.js +++ b/framework/Web/Javascripts/source/prado/controls/controls.js @@ -6,12 +6,15 @@ Prado.WebUI.PostBackControl.prototype = {
initialize : function(options)
{
+
this._elementOnClick = null, //capture the element's onclick function
this.element = $(options.ID);
Prado.Registry.set(options.ID, this);
if(this.element)
{
+ // Issue 181 + this.element.stopObserving();
if(this.onInit)
this.onInit(options);
}
@@ -196,6 +199,8 @@ Prado.WebUI.DefaultButton.prototype = {
initialize : function(options)
{
+ // Issue 181 + $(options['Panel']).stopObserving();
this.options = options;
this._event = this.triggerEvent.bindEvent(this);
Event.observe(options['Panel'], 'keydown', this._event);
diff --git a/framework/Web/Javascripts/source/prado/controls/slider.js b/framework/Web/Javascripts/source/prado/controls/slider.js index 593e6e87..aebf3527 100644 --- a/framework/Web/Javascripts/source/prado/controls/slider.js +++ b/framework/Web/Javascripts/source/prado/controls/slider.js @@ -19,6 +19,13 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl, this.minimum = this.options.minimum || this.range.start; this.hiddenField=$(this.options.ID+'_1'); + // Issue 181 + this.element.stopObserving(); + this.track.stopObserving(); + this.handle.stopObserving(); + this.progress.stopObserving(); + this.hiddenField.stopObserving(); + // 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); @@ -54,6 +61,10 @@ Prado.WebUI.TSlider = Class.extend(Prado.WebUI.PostBackControl, Event.observe (this.track, "mousedown", this.eventMouseDown); if (this.progress) Event.observe (this.progress, "mousedown", this.eventMouseDown); + + // Issue 181 + document.stopObserving("mouseup", this.eventMouseUp); + document.stopObserving("mousemove", this.eventMouseMove); Event.observe (document, "mouseup", this.eventMouseUp); Event.observe (document, "mousemove", this.eventMouseMove); |