diff options
author | Scott González <scott.gonzalez@gmail.com> | 2011-02-11 08:53:43 -0500 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2011-02-11 08:53:43 -0500 |
commit | 1cb1b9cef7cfc4bd77c619f4ee55b5d3fc99419a (patch) | |
tree | 1564df0c338bf19408921465d3a645d7495e59a2 | |
parent | 5b104dbcefdfa708d80e8babea0539617167012d (diff) | |
download | jquery-ui-1cb1b9cef7cfc4bd77c619f4ee55b5d3fc99419a.tar.gz jquery-ui-1cb1b9cef7cfc4bd77c619f4ee55b5d3fc99419a.zip |
Widget: Handle super calls when method calls go up and down the inheritance chain.
-rw-r--r-- | ui/jquery.ui.spinner.js | 9 | ||||
-rw-r--r-- | ui/jquery.ui.widget.js | 12 |
2 files changed, 13 insertions, 8 deletions
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; }; }()); } |