Skip to content

Commit d7ee956

Browse files
committed
Tabs: Trigger the select event when collapsing. Fixes #8813 - Tabs: select event not triggering when collapsible:true.
1 parent 0be0c26 commit d7ee956

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

tests/unit/tabs/tabs_deprecated.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ test( "show", function() {
359359
});
360360

361361
test( "select", function() {
362-
expect( 13 );
362+
expect( 18 );
363363

364364
var element = $( "#tabs1" ).tabs({
365365
active: false,
@@ -391,8 +391,12 @@ test( "select", function() {
391391
state( element, 0, 1, 0 );
392392

393393
// collapsing
394-
element.one( "tabsselect", function() {
395-
ok( false, "collapsing" );
394+
element.one( "tabsselect", function( event, ui ) {
395+
ok( !( "originalEvent" in event ), "originalEvent" );
396+
strictEqual( ui.tab, anchors[ 1 ], "ui.tab" );
397+
strictEqual( ui.panel, panels[ 1 ], "ui.panel" );
398+
equal( ui.index, 1, "ui.index" );
399+
state( element, 0, 1, 0 );
396400
});
397401
element.tabs( "option", "active", false );
398402
state( element, 0, 0, 0 );

ui/jquery.ui.tabs.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,15 +1187,20 @@ if ( $.uiBackCompat !== false ) {
11871187
}
11881188
},
11891189
_trigger: function( type, event, data ) {
1190-
var ret = this._superApply( arguments );
1190+
var tab, panel,
1191+
ret = this._superApply( arguments );
1192+
11911193
if ( !ret ) {
11921194
return false;
11931195
}
1194-
if ( type === "beforeActivate" && data.newTab.length ) {
1196+
1197+
if ( type === "beforeActivate" ) {
1198+
tab = data.newTab.length ? data.newTab : data.oldTab;
1199+
panel = data.newPanel.length ? data.newPanel : data.oldPanel;
11951200
ret = this._super( "select", event, {
1196-
tab: data.newTab.find( ".ui-tabs-anchor" )[ 0],
1197-
panel: data.newPanel[ 0 ],
1198-
index: data.newTab.closest( "li" ).index()
1201+
tab: tab.find( ".ui-tabs-anchor" )[ 0],
1202+
panel: panel[ 0 ],
1203+
index: tab.closest( "li" ).index()
11991204
});
12001205
} else if ( type === "activate" && data.newTab.length ) {
12011206
ret = this._super( "show", event, {

0 commit comments

Comments
 (0)