aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Petersen <public@petersendidit.com>2011-02-07 19:32:32 -0500
committerScott González <scott.gonzalez@gmail.com>2011-02-15 08:56:19 -0500
commit8ef8d2d8772404ccd3587121de8365d44f791339 (patch)
treea448c25b84b8731bdf0ea1f14b2fb0b48d468b05
parenta3cba34a4d99756e7590fee391fee1bdf06d8a5f (diff)
downloadjquery-ui-8ef8d2d8772404ccd3587121de8365d44f791339.tar.gz
jquery-ui-8ef8d2d8772404ccd3587121de8365d44f791339.zip
Tabs: Pass original event for show and select events. Fixes #5043 - Tabs: pass original event.
-rw-r--r--tests/unit/tabs/tabs_events.js16
-rwxr-xr-xui/jquery.ui.tabs.js18
2 files changed, 22 insertions, 12 deletions
diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js
index 1203d02df..24fb62f9b 100644
--- a/tests/unit/tabs/tabs_events.js
+++ b/tests/unit/tabs/tabs_events.js
@@ -6,7 +6,9 @@
module("tabs: events");
test('select', function() {
- expect(6);
+ expect(7);
+
+ var eventObj;
el = $('#tabs1').tabs({
select: function(event, ui) {
ok(true, 'select triggered after initialization');
@@ -15,9 +17,13 @@ test('select', function() {
equals(ui.tab, el.find('a')[1], 'contain tab as DOM anchor element');
equals(ui.panel, el.find('div')[1], 'contain panel as DOM div element');
equals(ui.index, 1, 'contain index');
+ evenObj = event;
}
});
el.tabs('select', 1);
+
+ el.find( "li:eq(1) a" ).simulate( "click" );
+ equals( evenObj.originalEvent.type, "click", "select triggered by click" );
});
test('load', function() {
@@ -25,12 +31,13 @@ test('load', function() {
});
test('show', function() {
- expect(4);
+ expect(5);
- var uiObj;
+ var uiObj, eventObj;
el = $('#tabs1').tabs({
show: function(event, ui) {
uiObj = ui;
+ eventObj = event;
}
});
ok(uiObj !== undefined, 'trigger callback after initialization');
@@ -38,6 +45,9 @@ test('show', function() {
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" );
+
});
test('add', function() {
diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js
index 21ad6ddec..c1c78653a 100755
--- a/ui/jquery.ui.tabs.js
+++ b/ui/jquery.ui.tabs.js
@@ -279,18 +279,18 @@ $.widget( "ui.tabs", {
// Show a tab...
var showTab = showFx
- ? function( clicked, $show ) {
+ ? function( clicked, $show, event ) {
$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
$show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
.animate( showFx, showFx.duration || "normal", function() {
resetStyle( $show, showFx );
- self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
+ self._trigger( "show", event, self._ui( clicked, $show[ 0 ] ) );
});
}
- : function( clicked, $show ) {
+ : function( clicked, $show, event ) {
$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
$show.removeClass( "ui-tabs-hide" );
- self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
+ self._trigger( "show", event, self._ui( clicked, $show[ 0 ] ) );
};
// Hide a tab, $show is optional...
@@ -311,7 +311,7 @@ $.widget( "ui.tabs", {
// attach tab event handler, unbind to avoid duplicates from former tabifying...
this.anchors.bind( o.event + ".tabs", function( event ) {
- event.preventDefault();
+ event.preventDefault();
var el = this,
$li = $(el).closest( "li" ),
$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
@@ -325,9 +325,9 @@ $.widget( "ui.tabs", {
$li.hasClass( "ui-state-disabled" ) ||
$li.hasClass( "ui-state-processing" ) ||
self.panels.filter( ":animated" ).length ||
- self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
+ self._trigger( "select", event, self._ui( this, $show[ 0 ] ) ) === false ) {
this.blur();
- return;
+ return;
}
o.selected = self.anchors.index( this );
@@ -355,7 +355,7 @@ $.widget( "ui.tabs", {
}
self.element.queue( "tabs", function() {
- showTab( el, $show );
+ showTab( el, $show, event );
});
// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
@@ -378,7 +378,7 @@ $.widget( "ui.tabs", {
});
}
self.element.queue( "tabs", function() {
- showTab( el, $show );
+ showTab( el, $show, event );
});
self.load( self.anchors.index( this ) );