aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/tabs/tabs_defaults.js4
-rw-r--r--tests/unit/tabs/tabs_defaults_deprecated.js1
-rw-r--r--tests/unit/tabs/tabs_deprecated.js20
-rw-r--r--tests/unit/tabs/tabs_events.js4
-rwxr-xr-xui/jquery.ui.tabs.js32
5 files changed, 50 insertions, 11 deletions
diff --git a/tests/unit/tabs/tabs_defaults.js b/tests/unit/tabs/tabs_defaults.js
index 98cb99fb5..e155a3dac 100644
--- a/tests/unit/tabs/tabs_defaults.js
+++ b/tests/unit/tabs/tabs_defaults.js
@@ -3,6 +3,7 @@
*/
var tabs_defaults = {
+ activate: null,
beforeload: null,
collapsible: false,
cookie: null,
@@ -10,8 +11,7 @@ var tabs_defaults = {
event: "click",
fx: null,
load: null,
- select: null,
- show: null
+ select: null
};
// FAIL: falsy values break the cookie option
diff --git a/tests/unit/tabs/tabs_defaults_deprecated.js b/tests/unit/tabs/tabs_defaults_deprecated.js
index 73e9ffede..47fd75d8f 100644
--- a/tests/unit/tabs/tabs_defaults_deprecated.js
+++ b/tests/unit/tabs/tabs_defaults_deprecated.js
@@ -3,6 +3,7 @@
*/
var tabs_defaults = {
+ activate: null,
add: null,
ajaxOptions: null,
beforeload: null,
diff --git a/tests/unit/tabs/tabs_deprecated.js b/tests/unit/tabs/tabs_deprecated.js
index 8b6b50d7e..ba1a778b0 100644
--- a/tests/unit/tabs/tabs_deprecated.js
+++ b/tests/unit/tabs/tabs_deprecated.js
@@ -168,6 +168,26 @@ test('remove', function() {
ok(false, "missing test - untested code is broken code.");
});
+test('show', function() {
+ expect(5);
+
+ var uiObj, eventObj;
+ el = $('#tabs1').tabs({
+ show: function(event, ui) {
+ uiObj = ui;
+ eventObj = event;
+ }
+ });
+ ok(uiObj !== undefined, 'trigger callback after initialization');
+ equals(uiObj.tab, $('a', el)[0], 'contain tab as DOM anchor element');
+ equals(uiObj.panel, $('div', el)[0], 'contain panel as DOM div element');
+ equals(uiObj.index, 0, 'contain index');
+
+ el.find( "li:eq(1) a" ).simulate( "click" );
+ equals( eventObj.originalEvent.type, "click", "show triggered by click" );
+
+});
+
module("tabs (deprecated): methods");
test('add', function() {
diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js
index 04f282157..60affd7ff 100644
--- a/tests/unit/tabs/tabs_events.js
+++ b/tests/unit/tabs/tabs_events.js
@@ -49,12 +49,12 @@ test('load', function() {
ok(false, "missing test - untested code is broken code.");
});
-test('show', function() {
+test('activate', function() {
expect(5);
var uiObj, eventObj;
el = $('#tabs1').tabs({
- show: function(event, ui) {
+ activate: function(event, ui) {
uiObj = ui;
eventObj = event;
}
diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js
index d76565a2a..d605b2d48 100755
--- a/ui/jquery.ui.tabs.js
+++ b/ui/jquery.ui.tabs.js
@@ -26,6 +26,7 @@ function getNextListId() {
$.widget( "ui.tabs", {
options: {
+ activate: null,
beforeload: null,
cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
collapsible: false,
@@ -33,8 +34,7 @@ $.widget( "ui.tabs", {
event: "click",
fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
load: null,
- select: null,
- show: null
+ select: null
},
_create: function() {
@@ -103,9 +103,9 @@ $.widget( "ui.tabs", {
this.lis.eq( o.active ).addClass( "ui-tabs-selected ui-state-active" );
- // seems to be expected behavior that the show callback is fired
+ // seems to be expected behavior that the activate callback is fired
self.element.queue( "tabs", function() {
- self._trigger( "show", null, self._ui( tab, panel[ 0 ] ) );
+ self._trigger( "activate", null, self._ui( tab, panel[ 0 ] ) );
});
this.load( o.active );
@@ -304,11 +304,11 @@ $.widget( "ui.tabs", {
.animate( showFx, showFx.duration || "normal", function() {
self._resetStyle( show, showFx );
self.running = false;
- self._trigger( "show", event, self._ui( clicked, show[ 0 ] ) );
+ self._trigger( "activate", event, self._ui( clicked, show[ 0 ] ) );
});
} else {
show.removeClass( "ui-tabs-hide" );
- self._trigger( "show", event, self._ui( clicked, show[ 0 ] ) );
+ self._trigger( "activate", event, self._ui( clicked, show[ 0 ] ) );
}
},
@@ -815,7 +815,7 @@ if ( $.uiBackCompat !== false ) {
$li.addClass( "ui-tabs-selected ui-state-active" );
$panel.removeClass( "ui-tabs-hide" );
this.element.queue( "tabs", function() {
- self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
+ self._trigger( "activate", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
});
this.load( 0 );
@@ -926,6 +926,24 @@ if ( $.uiBackCompat !== false ) {
this.options.selected = this.options.active ;
};
}( jQuery, jQuery.ui.tabs.prototype ) );
+
+ // show event
+ (function( $, prototype ) {
+ $.extend( prototype.options, {
+ show: null
+ });
+ var _trigger = prototype._trigger;
+
+ prototype._trigger = function( type, event, data ) {
+ var ret = _trigger.apply( this, arguments );
+ if ( !ret ) {
+ return false;
+ }
+ if ( type === "activate" ) {
+ ret = _trigger.call( this, "show", event, data );
+ }
+ };
+ }( jQuery, jQuery.ui.tabs.prototype ) );
}
})( jQuery );