diff options
author | Klaus Hartl <klaus.hartl@googlemail.com> | 2009-03-01 14:32:29 +0000 |
---|---|---|
committer | Klaus Hartl <klaus.hartl@googlemail.com> | 2009-03-01 14:32:29 +0000 |
commit | 240a588bce03e72ca48527f3f7887261f505999b (patch) | |
tree | 4397d8a816a8d3dc2214d95d323891ec18e5550f | |
parent | 676ea7f248c94d351325e8aeafed12b35630c76c (diff) | |
download | jquery-ui-240a588bce03e72ca48527f3f7887261f505999b.tar.gz jquery-ui-240a588bce03e72ca48527f3f7887261f505999b.zip |
Tabs: few fixes required in destroy method, removed ol as tabifyable element
-rw-r--r-- | tests/unit/tabs/tabs_methods.js | 8 | ||||
-rw-r--r-- | ui/ui.tabs.js | 33 |
2 files changed, 23 insertions, 18 deletions
diff --git a/tests/unit/tabs/tabs_methods.js b/tests/unit/tabs/tabs_methods.js index dbfa9ee33..941a7b517 100644 --- a/tests/unit/tabs/tabs_methods.js +++ b/tests/unit/tabs/tabs_methods.js @@ -22,16 +22,18 @@ test('init', function() { }); test('destroy', function() { - expect(5); + expect(6); - el = $('#tabs1').tabs(); + el = $('#tabs1').tabs({ collapsible: true }); + $('li:eq(2)', el).simulate('mouseover').find('a').focus(); el.tabs('destroy'); - ok( el.is(':not(.ui-tabs, .ui-widget, .ui-widget-content, .ui-corner-all)'), 'remove classes from container'); + ok( el.is(':not(.ui-tabs, .ui-widget, .ui-widget-content, .ui-corner-all, .ui-tabs-collapsible)'), 'remove classes from container'); ok( $('ul', el).is(':not(.ui-tabs-nav, .ui-helper-reset, .ui-helper-clearfix, .ui-widget-header, .ui-corner-all)'), 'remove classes from list' ); ok( $('div:eq(1)', el).is(':not(.ui-tabs-panel, .ui-widget-content, .ui-corner-bottom, .ui-tabs-hide)'), 'remove classes to panel' ); ok( $('li:eq(0)', el).is(':not(.ui-tabs-selected, .ui-state-active, .ui-corner-top)'), 'remove classes from active li'); ok( $('li:eq(1)', el).is(':not(.ui-state-default, .ui-corner-top)'), 'remove classes from inactive li'); + ok( $('li:eq(2)', el).is(':not(.ui-state-hover, .ui-state-focus)'), 'remove classes from mouseovered or focused li'); }); test('enable', function() { diff --git a/ui/ui.tabs.js b/ui/ui.tabs.js index cfbdbd4a8..1fa32962a 100644 --- a/ui/ui.tabs.js +++ b/ui/ui.tabs.js @@ -65,13 +65,13 @@ $.widget("ui.tabs", { .find('span:data(label.tabs)') .each(function() { var el = $(this); - el.html(el.data('label.tabs')); + el.html(el.data('label.tabs')).removeData('label.tabs'); }); }, _tabify: function(init) { - this.list = this.element.children('ul:first, ol:first').eq(0); + this.list = this.element.children('ul:first'); this.lis = $('li:has(a[href])', this.list); this.anchors = this.lis.map(function() { return $('a', this)[0]; }); this.panels = $([]); @@ -391,8 +391,10 @@ $.widget("ui.tabs", { destroy: function() { var o = this.options; + this.abort(); + this.element.unbind('.tabs') - .removeClass('ui-tabs ui-widget ui-widget-content ui-corner-all') + .removeClass('ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible') .removeData('tabs'); this.list.removeClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all'); @@ -413,18 +415,19 @@ $.widget("ui.tabs", { $(this).remove(); } else { - $(this).removeClass( - 'ui-state-default ' + - 'ui-corner-top ' + - 'ui-tabs-selected ' + - 'ui-state-active ' + - 'ui-state-hover ' + - 'ui-tabs-collapsible ' + - 'ui-state-disabled ' + - 'ui-tabs-panel ' + - 'ui-widget-content ' + - 'ui-corner-bottom ' + - 'ui-tabs-hide'); + $(this).removeClass([ + 'ui-state-default', + 'ui-corner-top', + 'ui-tabs-selected', + 'ui-state-active', + 'ui-state-hover', + 'ui-state-focus', + 'ui-state-disabled', + 'ui-tabs-panel', + 'ui-widget-content', + 'ui-corner-bottom', + 'ui-tabs-hide' + ].join(' ')); } }); |