Tabs: Pass tab and panel in create event. Fixes #7868 - Tabs: Provide tab and panel details in create event.

This commit is contained in:
Scott González 2012-01-21 08:46:02 -05:00
parent da89fcbc07
commit 6800e1a2f9
2 changed files with 46 additions and 0 deletions

View File

@ -2,6 +2,45 @@
module( "tabs: events" );
test( "create", function() {
expect( 10 );
var element = $( "#tabs1" ),
tabs = element.find( "ul a" ),
panels = element.children( "div" );
element.tabs({
create: function( event, ui ) {
equals( ui.tab.size(), 1, "tab size" );
strictEqual( ui.tab[ 0 ], tabs[ 0 ], "tab" );
equals( ui.panel.size(), 1, "panel size" );
strictEqual( ui.panel[ 0 ], panels[ 0 ], "panel" );
}
});
element.tabs( "destroy" );
element.tabs({
active: 2,
create: function( event, ui ) {
equals( ui.tab.size(), 1, "tab size" );
strictEqual( ui.tab[ 0 ], tabs[ 2 ], "tab" );
equals( ui.panel.size(), 1, "panel size" );
strictEqual( ui.panel[ 0 ], panels[ 2 ], "panel" );
}
});
element.tabs( "destroy" );
element.tabs({
active: false,
collapsible: true,
create: function( event, ui ) {
equals( ui.tab.size(), 0, "tab size" );
equals( ui.panel.size(), 0, "panel size" );
}
});
element.tabs( "destroy" );
});
test( "beforeActivate", function() {
expect( 38 );

View File

@ -120,6 +120,13 @@ $.widget( "ui.tabs", {
}
},
_getCreateEventData: function() {
return {
tab: this.active,
panel: !this.active.length ? $() : this._getPanelForTab( this.active )
};
},
_setOption: function( key, value ) {
if ( key == "active" ) {
// _activate() will handle invalid values and update this.options