From 7023ed4699b0c52e253ba2b3949d08b3dac2905b Mon Sep 17 00:00:00 2001 From: Scott González Date: Wed, 12 Sep 2012 09:28:51 -0400 Subject: Tabs: Account for non-tab list items on init. Fixes #8568 - jQuery ui tabs: wrong default active li if ul contains extraneous elements. --- tests/unit/tabs/tabs.html | 8 ++++++++ tests/unit/tabs/tabs_core.js | 9 +++++++++ tests/unit/tabs/tabs_deprecated.html | 8 ++++++++ ui/jquery.ui.tabs.js | 2 +- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/unit/tabs/tabs.html b/tests/unit/tabs/tabs.html index 3a55f3b79..e6c954727 100644 --- a/tests/unit/tabs/tabs.html +++ b/tests/unit/tabs/tabs.html @@ -145,6 +145,14 @@ +
+ +
+
+ diff --git a/tests/unit/tabs/tabs_core.js b/tests/unit/tabs/tabs_core.js index 53dd50a98..5dbe1d6b1 100644 --- a/tests/unit/tabs/tabs_core.js +++ b/tests/unit/tabs/tabs_core.js @@ -44,6 +44,15 @@ test( "disconnected from DOM", function() { equal( element.find( ".ui-tabs-panel" ).length, 3, "should initialize panels" ); }); +test( "non-tab list items", function() { + expect( 2 ); + + var element = $( "#tabs9" ).tabs(); + equal( element.tabs( "option", "active" ), 0, "defaults to first tab" ); + equal( element.find( ".ui-tabs-nav li.ui-state-active" ).index(), 1, + "first actual tab is active" ); +}); + test( "aria-controls", function() { expect( 7 ); var element = $( "#tabs1" ).tabs(), diff --git a/tests/unit/tabs/tabs_deprecated.html b/tests/unit/tabs/tabs_deprecated.html index bb4088350..9d3ecef3a 100644 --- a/tests/unit/tabs/tabs_deprecated.html +++ b/tests/unit/tabs/tabs_deprecated.html @@ -144,6 +144,14 @@ +
+ +
+
+ diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js index 7631366d6..60377ad13 100644 --- a/ui/jquery.ui.tabs.js +++ b/ui/jquery.ui.tabs.js @@ -102,7 +102,7 @@ $.widget( "ui.tabs", { // handle numbers: negative, out of range if ( active !== false ) { - active = this.tabs.eq( active ).index(); + active = this.tabs.index( this.tabs.eq( active ) ); if ( active === -1 ) { active = options.collapsible ? false : 0; } -- cgit v1.2.3