diff options
author | Scott González <scott.gonzalez@gmail.com> | 2012-01-21 08:46:02 -0500 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2012-01-21 08:46:02 -0500 |
commit | 6800e1a2f97a7d8aaf20d065aa2ce517528e5068 (patch) | |
tree | 82ac9707d57c122ab5c0d60dfd62f78da32396bd | |
parent | da89fcbc07f236d43e6a1edd98603beea6e245b6 (diff) | |
download | jquery-ui-6800e1a2f97a7d8aaf20d065aa2ce517528e5068.tar.gz jquery-ui-6800e1a2f97a7d8aaf20d065aa2ce517528e5068.zip |
Tabs: Pass tab and panel in create event. Fixes #7868 - Tabs: Provide tab and panel details in create event.
-rw-r--r-- | tests/unit/tabs/tabs_events.js | 39 | ||||
-rw-r--r-- | ui/jquery.ui.tabs.js | 7 |
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js index f5cde180b..333578907 100644 --- a/tests/unit/tabs/tabs_events.js +++ b/tests/unit/tabs/tabs_events.js @@ -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 ); diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js index 168aa0ee5..7a701405c 100644 --- a/ui/jquery.ui.tabs.js +++ b/ui/jquery.ui.tabs.js @@ -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 |