aboutsummaryrefslogtreecommitdiffstats
path: root/ui/ui.tabs.js
diff options
context:
space:
mode:
authorKlaus Hartl <klaus.hartl@googlemail.com>2009-01-10 11:53:07 +0000
committerKlaus Hartl <klaus.hartl@googlemail.com>2009-01-10 11:53:07 +0000
commitc31ae93dc565d99982c250fe0731dda1efe51b68 (patch)
tree8f9a90ec3a8a418d6bb28fea97f07b7725a7740d /ui/ui.tabs.js
parent422e0666e996830382e171a123df6006f3600617 (diff)
downloadjquery-ui-c31ae93dc565d99982c250fe0731dda1efe51b68.tar.gz
jquery-ui-c31ae93dc565d99982c250fe0731dda1efe51b68.zip
UI Tabs: fixed a bunch of problems that were introduced with the new markup, fixes #3734, #3795
Diffstat (limited to 'ui/ui.tabs.js')
-rw-r--r--ui/ui.tabs.js18
1 files changed, 8 insertions, 10 deletions
diff --git a/ui/ui.tabs.js b/ui/ui.tabs.js
index 873fdd9c2..4a6f93997 100644
--- a/ui/ui.tabs.js
+++ b/ui/ui.tabs.js
@@ -21,7 +21,7 @@ $.widget("ui.tabs", {
destroy: function() {
var o = this.options;
- this.element.unbind('.tabs')
+ this.list.unbind('.tabs')
.removeClass(o.navClass).removeData('tabs');
this.$tabs.each(function() {
var href = $.data(this, 'href.tabs');
@@ -66,13 +66,14 @@ $.widget("ui.tabs", {
},
_cookie: function() {
- var cookie = this.cookie || (this.cookie = 'ui-tabs-' + $.data(this.element[0]));
+ var cookie = this.cookie || (this.cookie = 'ui-tabs-' + $.data(this.list[0]));
return $.cookie.apply(null, [cookie].concat($.makeArray(arguments)));
},
_tabify: function(init) {
- this.$lis = $('li:has(a[href])', this.element.is('div') ? $('> ul:first', this.element) : this.element);
+ this.list = this.element.is('div') ? this.element.children('ul:first, ol:first').eq(0) : this.element;
+ this.$lis = $('li:has(a[href])', this.list);
this.$tabs = this.$lis.map(function() { return $('a', this)[0]; });
this.$panels = $([]);
@@ -91,7 +92,7 @@ $.widget("ui.tabs", {
var $panel = $('#' + id);
if (!$panel.length) {
$panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass)
- .insertAfter(self.$panels[i - 1] || self.element);
+ .insertAfter(self.$panels[i - 1] || self.list);
$panel.data('destroy.tabs', true);
}
self.$panels = self.$panels.add($panel);
@@ -108,11 +109,8 @@ $.widget("ui.tabs", {
if (this.element.is('div')) {
// TODO replace hardcoded class names
this.element.addClass('ui-tabs ui-widget ui-widget-content ui-corner-all');
- $('> ul:first', this.element).addClass(o.navClass);
- }
- else {
- this.element.addClass(o.navClass);
}
+ this.list.addClass(o.navClass);
this.$lis.addClass(o.tabClass);
this.$panels.addClass(o.panelClass);
@@ -360,8 +358,8 @@ $.widget("ui.tabs", {
}
$panel.addClass(o.panelClass);
if (index >= this.$lis.length) {
- $li.appendTo(this.element);
- $panel.appendTo(this.element[0].parentNode);
+ $li.appendTo(this.list);
+ $panel.appendTo(this.list[0].parentNode);
}
else {
$li.insertBefore(this.$lis[index]);