Skip to content

Commit 787efd3

Browse files
committed
Tabs: Rename show event to activate. Fixes #7137 Tabs: Rename show event to activate
1 parent 9a00fd4 commit 787efd3

File tree

5 files changed

+50
-11
lines changed

5 files changed

+50
-11
lines changed

tests/unit/tabs/tabs_defaults.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
*/
44

55
var tabs_defaults = {
6+
activate: null,
67
beforeload: null,
78
collapsible: false,
89
cookie: null,
910
disabled: false,
1011
event: "click",
1112
fx: null,
1213
load: null,
13-
select: null,
14-
show: null
14+
select: null
1515
};
1616

1717
// FAIL: falsy values break the cookie option

tests/unit/tabs/tabs_defaults_deprecated.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
var tabs_defaults = {
6+
activate: null,
67
add: null,
78
ajaxOptions: null,
89
beforeload: null,

tests/unit/tabs/tabs_deprecated.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,26 @@ test('remove', function() {
168168
ok(false, "missing test - untested code is broken code.");
169169
});
170170

171+
test('show', function() {
172+
expect(5);
173+
174+
var uiObj, eventObj;
175+
el = $('#tabs1').tabs({
176+
show: function(event, ui) {
177+
uiObj = ui;
178+
eventObj = event;
179+
}
180+
});
181+
ok(uiObj !== undefined, 'trigger callback after initialization');
182+
equals(uiObj.tab, $('a', el)[0], 'contain tab as DOM anchor element');
183+
equals(uiObj.panel, $('div', el)[0], 'contain panel as DOM div element');
184+
equals(uiObj.index, 0, 'contain index');
185+
186+
el.find( "li:eq(1) a" ).simulate( "click" );
187+
equals( eventObj.originalEvent.type, "click", "show triggered by click" );
188+
189+
});
190+
171191
module("tabs (deprecated): methods");
172192

173193
test('add', function() {

tests/unit/tabs/tabs_events.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ test('load', function() {
4949
ok(false, "missing test - untested code is broken code.");
5050
});
5151

52-
test('show', function() {
52+
test('activate', function() {
5353
expect(5);
5454

5555
var uiObj, eventObj;
5656
el = $('#tabs1').tabs({
57-
show: function(event, ui) {
57+
activate: function(event, ui) {
5858
uiObj = ui;
5959
eventObj = event;
6060
}

ui/jquery.ui.tabs.js

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ function getNextListId() {
2626

2727
$.widget( "ui.tabs", {
2828
options: {
29+
activate: null,
2930
beforeload: null,
3031
cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
3132
collapsible: false,
3233
disabled: false,
3334
event: "click",
3435
fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
3536
load: null,
36-
select: null,
37-
show: null
37+
select: null
3838
},
3939

4040
_create: function() {
@@ -103,9 +103,9 @@ $.widget( "ui.tabs", {
103103

104104
this.lis.eq( o.active ).addClass( "ui-tabs-selected ui-state-active" );
105105

106-
// seems to be expected behavior that the show callback is fired
106+
// seems to be expected behavior that the activate callback is fired
107107
self.element.queue( "tabs", function() {
108-
self._trigger( "show", null, self._ui( tab, panel[ 0 ] ) );
108+
self._trigger( "activate", null, self._ui( tab, panel[ 0 ] ) );
109109
});
110110

111111
this.load( o.active );
@@ -304,11 +304,11 @@ $.widget( "ui.tabs", {
304304
.animate( showFx, showFx.duration || "normal", function() {
305305
self._resetStyle( show, showFx );
306306
self.running = false;
307-
self._trigger( "show", event, self._ui( clicked, show[ 0 ] ) );
307+
self._trigger( "activate", event, self._ui( clicked, show[ 0 ] ) );
308308
});
309309
} else {
310310
show.removeClass( "ui-tabs-hide" );
311-
self._trigger( "show", event, self._ui( clicked, show[ 0 ] ) );
311+
self._trigger( "activate", event, self._ui( clicked, show[ 0 ] ) );
312312
}
313313
},
314314

@@ -815,7 +815,7 @@ if ( $.uiBackCompat !== false ) {
815815
$li.addClass( "ui-tabs-selected ui-state-active" );
816816
$panel.removeClass( "ui-tabs-hide" );
817817
this.element.queue( "tabs", function() {
818-
self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
818+
self._trigger( "activate", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
819819
});
820820

821821
this.load( 0 );
@@ -926,6 +926,24 @@ if ( $.uiBackCompat !== false ) {
926926
this.options.selected = this.options.active ;
927927
};
928928
}( jQuery, jQuery.ui.tabs.prototype ) );
929+
930+
// show event
931+
(function( $, prototype ) {
932+
$.extend( prototype.options, {
933+
show: null
934+
});
935+
var _trigger = prototype._trigger;
936+
937+
prototype._trigger = function( type, event, data ) {
938+
var ret = _trigger.apply( this, arguments );
939+
if ( !ret ) {
940+
return false;
941+
}
942+
if ( type === "activate" ) {
943+
ret = _trigger.call( this, "show", event, data );
944+
}
945+
};
946+
}( jQuery, jQuery.ui.tabs.prototype ) );
929947
}
930948

931949
})( jQuery );

0 commit comments

Comments
 (0)