diff options
author | David Petersen <public@petersendidit.com> | 2011-03-28 22:46:31 -0400 |
---|---|---|
committer | David Petersen <public@petersendidit.com> | 2011-03-28 22:46:31 -0400 |
commit | cb0588f2dd80b5bcc6ff8ddf313366ab1f4c53b1 (patch) | |
tree | 66f7be65cf30651621842e7ac9d2a6efbe828f1b /ui/jquery.ui.tabs.js | |
parent | c6a6ef5ee6ed026ed47a96030a341a8b08a201cf (diff) | |
download | jquery-ui-cb0588f2dd80b5bcc6ff8ddf313366ab1f4c53b1.tar.gz jquery-ui-cb0588f2dd80b5bcc6ff8ddf313366ab1f4c53b1.zip |
Tabs: Deprecate cookie option. Fixes #7144 Tabs: Deprecate cookie option
Diffstat (limited to 'ui/jquery.ui.tabs.js')
-rwxr-xr-x | ui/jquery.ui.tabs.js | 87 |
1 files changed, 54 insertions, 33 deletions
diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js index b35a91e51..066bd5299 100755 --- a/ui/jquery.ui.tabs.js +++ b/ui/jquery.ui.tabs.js @@ -29,7 +29,6 @@ $.widget( "ui.tabs", { activate: null, beforeload: null, beforeActivate: null, - cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } collapsible: false, disabled: false, event: "click", @@ -50,8 +49,7 @@ $.widget( "ui.tabs", { // Selected tab // use "selected" option or try to retrieve: // 1. from fragment identifier in url - // 2. from cookie - // 3. from selected class attribute on <li> + // 2. from selected class attribute on <li> if ( o.active === undefined ) { if ( location.hash ) { this.anchors.each(function( i, a ) { @@ -61,9 +59,6 @@ $.widget( "ui.tabs", { } }); } - if ( typeof o.active !== "number" && o.cookie ) { - o.active = parseInt( self._cookie(), 10 ); - } if ( typeof o.active !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { o.active = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); } @@ -139,12 +134,6 @@ $.widget( "ui.tabs", { return hash.replace( /:/g, "\\:" ); }, - _cookie: function() { - var cookie = this.cookie || - ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); - return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); - }, - _ui: function( tab, panel ) { return { tab: tab, @@ -189,11 +178,6 @@ $.widget( "ui.tabs", { o.disabled = false; } - // set or update cookie after init and add/remove respectively - if ( o.cookie ) { - this._cookie( o.active, o.cookie ); - } - // disable tabs for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { $( li ).toggleClass( "ui-state-disabled", $.inArray( i, o.disabled ) != -1 ); @@ -382,10 +366,6 @@ $.widget( "ui.tabs", { o.active = -1; self.active = null; - if ( o.cookie ) { - self._cookie( o.active, o.cookie ); - } - self.element.queue( "tabs", function() { self._hideTab( clicked, $hide ); }).dequeue( "tabs" ); @@ -393,10 +373,6 @@ $.widget( "ui.tabs", { clicked[ 0 ].blur(); return; } else if ( !$hide.length ) { - if ( o.cookie ) { - self._cookie( o.active, o.cookie ); - } - self.element.queue( "tabs", function() { self._showTab( clicked, $show, event ); }); @@ -409,10 +385,6 @@ $.widget( "ui.tabs", { } } - if ( o.cookie ) { - self._cookie( o.active, o.cookie ); - } - // show new tab if ( $show.length ) { if ( $hide.length ) { @@ -507,10 +479,6 @@ $.widget( "ui.tabs", { } }); - if ( o.cookie ) { - this._cookie( null, o.cookie ); - } - return this; }, @@ -974,6 +942,59 @@ if ( $.uiBackCompat !== false ) { this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); }; }( jQuery, jQuery.ui.tabs.prototype ) ); + + // cookie option + (function( $, prototype ) { + $.extend( prototype.options, { + cookie: null // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } + }); + + var _create = prototype._create, + _refresh = prototype._refresh, + _eventHandler = prototype._eventHandler, + _destroy = prototype._destroy; + + prototype._create = function() { + var o = this.options; + if ( o.active === undefined ) { + if ( typeof o.active !== "number" && o.cookie ) { + o.active = parseInt( this._cookie(), 10 ); + } + } + _create.call( this ); + }; + + prototype._cookie = function() { + var cookie = this.cookie || + ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); + return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); + }; + + prototype._refresh = function() { + _refresh.call( this ); + + // set or update cookie after init and add/remove respectively + if ( this.options.cookie ) { + this._cookie( this.options.active, this.options.cookie ); + } + }; + + prototype._eventHandler = function( event ) { + _eventHandler.apply( this, arguments ); + + if ( this.options.cookie ) { + this._cookie( this.options.active, this.options.cookie ); + } + }; + + prototype._destroy = function() { + _destroy.call( this ); + + if ( this.options.cookie ) { + this._cookie( null, this.options.cookie ); + } + }; + }( jQuery, jQuery.ui.tabs.prototype ) ); } })( jQuery ); |