mirror of
https://github.com/jquery/jquery-ui.git
synced 2026-04-20 03:02:41 -04:00
Tabs: Force ajax tabs to resolve asynchronously to avoid a bug caused by cached XHRs resolving immediately in IE.
This commit is contained in:
@@ -206,7 +206,8 @@ test( "beforeLoad", function() {
|
||||
});
|
||||
element.find( ".ui-tabs-nav a" ).eq( 3 ).click();
|
||||
tabs_state( element, 0, 0, 0, 1, 0 );
|
||||
equals( panel.html(), "<p>testing</p>", "panel html after" );
|
||||
// .toLowerCase() is needed to convert <P> to <p> in old IEs
|
||||
equals( panel.html().toLowerCase(), "<p>testing</p>", "panel html after" );
|
||||
});
|
||||
|
||||
if ( $.uiBackCompat === false ) {
|
||||
|
||||
30
ui/jquery.ui.tabs.js
vendored
30
ui/jquery.ui.tabs.js
vendored
@@ -541,19 +541,27 @@ $.widget( "ui.tabs", {
|
||||
|
||||
this.xhr
|
||||
.success(function( response ) {
|
||||
panel.html( response );
|
||||
self._trigger( "load", event, eventData );
|
||||
// TODO: IE resolves cached XHRs immediately
|
||||
// remove when core #10467 is fixed
|
||||
setTimeout(function() {
|
||||
panel.html( response );
|
||||
self._trigger( "load", event, eventData );
|
||||
}, 1 );
|
||||
})
|
||||
.complete(function( jqXHR, status ) {
|
||||
if ( status === "abort" ) {
|
||||
self.panels.stop( false, true );
|
||||
}
|
||||
|
||||
self.lis.eq( index ).removeClass( "ui-tabs-loading" );
|
||||
|
||||
if ( jqXHR === self.xhr ) {
|
||||
delete self.xhr;
|
||||
}
|
||||
// TODO: IE resolves cached XHRs immediately
|
||||
// remove when core #10467 is fixed
|
||||
setTimeout(function() {
|
||||
if ( status === "abort" ) {
|
||||
self.panels.stop( false, true );
|
||||
}
|
||||
|
||||
self.lis.eq( index ).removeClass( "ui-tabs-loading" );
|
||||
|
||||
if ( jqXHR === self.xhr ) {
|
||||
delete self.xhr;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user