From: Scott González Date: Fri, 11 Feb 2011 13:53:43 +0000 (-0500) Subject: Widget: Handle super calls when method calls go up and down the inheritance chain. X-Git-Tag: 1.9m4~14 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1cb1b9cef7cfc4bd77c619f4ee55b5d3fc99419a;p=jquery-ui.git Widget: Handle super calls when method calls go up and down the inheritance chain. --- diff --git a/ui/jquery.ui.spinner.js b/ui/jquery.ui.spinner.js index 0219abb8b..6d4d10d51 100644 --- a/ui/jquery.ui.spinner.js +++ b/ui/jquery.ui.spinner.js @@ -285,16 +285,11 @@ $.widget('ui.spinner', { this.buttons.button("enable"); } } - // TODO see below - //this._super( "_setOption", key, value ); - $.Widget.prototype._setOption.apply( this, arguments ); + this._super( "_setOption", key, value ); }, _setOptions: function( options ) { - // TODO _super doesn't handle inheritance with more then one subclass - // spinner subclass will have spinner as base, calling spinner._setOptions infinitely - //this._super( "_setOptions", options ); - $.Widget.prototype._setOptions.apply( this, arguments ); + this._super( "_setOptions", options ); if ( "value" in options ) { this._format( this.options.value ); } diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index e09701d7b..0a4759023 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -66,9 +66,19 @@ $.widget = function( name, base, prototype ) { return base.prototype[ method ].apply( this, args ); }; return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + this._super = _super; this._superApply = _superApply; - return value.apply( this, arguments ); + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; }; }()); }