Tabs: Simplify logic for showing/hiding tabs.

This commit is contained in:
Scott González 2011-05-11 10:08:06 -04:00
parent b70256c368
commit 1298f939b9

46
ui/jquery.ui.tabs.js vendored
View File

@ -401,52 +401,26 @@ $.widget( "ui.tabs", {
that.xhr.abort(); that.xhr.abort();
} }
// if tab may be closed if ( !toHide.length && !toShow.length ) {
if ( options.collapsible ) { throw "jQuery UI Tabs: Mismatching fragment identifier.";
if ( collapsing ) {
options.active = false;
that.element.queue( "tabs", function() {
that._hideTab( event, eventData );
}).dequeue( "tabs" );
clicked[ 0 ].blur();
return;
} else if ( !toHide.length ) {
that.element.queue( "tabs", function() {
that._showTab( event, eventData );
});
// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
that.load( that.anchors.index( clicked ), event );
clicked[ 0 ].blur();
return;
}
} }
// show new tab if ( toHide.length ) {
that.element.queue( "tabs", function() {
that._hideTab( event, eventData );
});
}
if ( toShow.length ) { if ( toShow.length ) {
if ( toHide.length ) {
that.element.queue( "tabs", function() {
that._hideTab( event, eventData );
});
}
that.element.queue( "tabs", function() { that.element.queue( "tabs", function() {
that._showTab( event, eventData ); that._showTab( event, eventData );
}); });
// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
that.load( that.anchors.index( clicked ), event ); that.load( that.anchors.index( clicked ), event );
} else {
throw "jQuery UI Tabs: Mismatching fragment identifier.";
}
// Prevent IE from keeping other link focussed when using the back button
// and remove dotted border from clicked link. This is controlled via CSS
// in modern browsers; blur() removes focus from address bar in Firefox
// which can become a usability
if ( $.browser.msie ) {
clicked[ 0 ].blur(); clicked[ 0 ].blur();
} else {
that.element.dequeue( "tabs" );
} }
}, },