r3538 committed - Tabs: fixed to work with empty nav list again....

r3538 committed - Tabs: fixed to work with empty nav list again....

Revision: 3538
Author: scott.gonzalez
Date: Fri Dec 25 10:25:46 2009
Log: Tabs: fixed to work with empty nav list again.
Fixes #4997 - No longer possible to start with empty tab then add()
elements dynamically.
http://code.google.com/p/jquery-ui/source/detail?r=3538
Modified:
/trunk/tests/unit/tabs/tabs.html
/trunk/tests/unit/tabs/tabs_core.js
/trunk/ui/jquery.ui.tabs.js
=======================================
--- /trunk/tests/unit/tabs/tabs.html    Wed Dec 16 14:20:18 2009
+++ /trunk/tests/unit/tabs/tabs.html    Fri Dec 25 10:25:46 2009
@@ -42,6 +42,34 @@
            <div id="colon:test"></div>
            <div style="height: 300px;" id="inline-style"></div>
        </div>
+        <div id="tabs3">
+            <div>
+                <ul id="tabs3-list">
+                    <li><a href="#tabs3-1">1</a></li>
+                </ul>
+            </div>
+        </div>
+        <div id="tabs4">
+            <ul id="tabs4-list">
+                <li><a href="#tabs4-1">1</a></li>
+            </ul>
+            <ol>
+                <li><a href="#tabs4-1">1</a></li>
+            </ol>
+        </div>
+        <div id="tabs4a">
+            <ol id="tabs4a-list">
+                <li><a href="#tabs4a-1">1</a></li>
+            </ol>
+            <ul>
+                <li><a href="#tabs4a-1">1</a></li>
+            </ul>
+        </div>
+        <div id="tabs5">
+            <div>
+                <ul id="tabs5-list"></ul>
+            </div>
+        </div>
    </div>
</body>
</html>
=======================================
--- /trunk/tests/unit/tabs/tabs_core.js    Wed Feb 18 13:44:34 2009
+++ /trunk/tests/unit/tabs/tabs_core.js    Fri Dec 25 10:25:46 2009
@@ -7,6 +7,24 @@
module("tabs: core");
+test('navigation markup', function() {
+    el = $('#tabs3').tabs();
+    ok($('#tabs3-list').hasClass('ui-tabs-nav'), 'custom markup; allow list
to be any descendant');
+    el.tabs('destroy');
+
+    el = $('#tabs4').tabs();
+    ok($('#tabs4-list').hasClass('ui-tabs-nav'), 'first list found becomes
nav - ul');
+    el.tabs('destroy');
+
+    el = $('#tabs4a').tabs();
+    ok($('#tabs4a-list').hasClass('ui-tabs-nav'), 'first list found becomes
nav - ol');
+    el.tabs('destroy');
+
+    el = $('#tabs5').tabs();
+    ok($('#tabs5-list').hasClass('ui-tabs-nav'), 'empty list can be used');
+    el.tabs('destroy');
+});
+
test('ajax', function() {
    expect(4);
    stop();
@@ -34,6 +52,5 @@
    });
});
-
-
+
})(jQuery);
=======================================
--- /trunk/ui/jquery.ui.tabs.js    Tue Dec 22 11:51:24 2009
+++ /trunk/ui/jquery.ui.tabs.js    Fri Dec 25 10:25:46 2009
@@ -68,8 +68,7 @@
    _tabify: function(init) {
-        // use $('li:first').parent() so we can find the first ul/ol in DOM order
-        this.list = this.element.find('li:first').parent();
+        this.list = this.element.find('ol,ul').eq(0);
        this.lis = $('li:has(a[href])', this.list);
        this.anchors = this.lis.map(function() { return $('a', this)[0]; });
        this.panels = $([]);
--