Skip to content

Commit

Permalink
Use this.running to know if we are still in process of showing/hiddin…
Browse files Browse the repository at this point in the history
…g a tab
  • Loading branch information
petersendidit committed Mar 27, 2011
1 parent 8b89feb commit f6e7b6c
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions ui/jquery.ui.tabs.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ $.widget( "ui.tabs", {
var self = this,
o = this.options;

this.running = false;

this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );

this._processTabs();
Expand Down Expand Up @@ -294,9 +296,11 @@ $.widget( "ui.tabs", {
$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );

if ( this.showFx ) {
self.running = true;
show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
.animate( showFx, showFx.duration || "normal", function() {
self._resetStyle( show, showFx );
self.running = false;
self._trigger( "show", event, self._ui( clicked, show[ 0 ] ) );
});
} else {
Expand All @@ -309,7 +313,9 @@ $.widget( "ui.tabs", {
var self = this;

if ( this.hideFx ) {
self.running = true;
$hide.animate( hideFx, hideFx.duration || "normal", function() {
self.running = false;
self.lis.removeClass( "ui-tabs-selected ui-state-active" );
$hide.addClass( "ui-tabs-hide" );
self._resetStyle( $hide, hideFx );
Expand Down Expand Up @@ -346,14 +352,15 @@ $.widget( "ui.tabs", {
$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
$show = self.element.find( self._sanitizeSelector( el.hash ) );

// If tab is already selected and not collapsible or tab disabled or
// or is already loading or click callback returns false stop here.
// Check if click handler returns false last so that it is not executed
// for a disabled or loading tab!
if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
// tab is already selected, but not collapsible
if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible ) ||
// can't switch durning an animation
self.running ||
// tab is disabled
$li.hasClass( "ui-state-disabled" ) ||
// tab is already loading
$li.hasClass( "ui-state-processing" ) ||
self.panels.filter( ":animated" ).length ||
// allow canceling by select event
self._trigger( "select", event, self._ui( el, $show[ 0 ] ) ) === false ) {
el.blur();
return;
Expand Down

0 comments on commit f6e7b6c

Please sign in to comment.