Modify ↓
Ticket #1789 (closed bug: fixed)
Impossible to initialize an empty tabset
| Reported by: | klaus | Owned by: | klaus |
|---|---|---|---|
| Priority: | minor | Milestone: | 1.2.2 |
| Component: | ui | Version: | 1.2.1 |
| Keywords: | tabs | Cc: | |
| Blocking: | Blocked by: |
Description (last modified by klaus) (diff)
There is no possibility to initialize an empty tabset (e.g. to add all tabs dynamically.
Small fix in tabify() method (line 183) make things better:
if (this.$tabs.length && $.data(this.$tabs[o.initial], 'href')) {
Lines 362-373 of ui.tabs.js (add method):
if (url.indexOf('#') == 0) { // ajax container is created by tabify automatically
var $container = $(url);
// try to find an existing element before creating a new one
$container = ($container.length && $container || $('<div id="' + url.replace('#', '') + '" class="' + o.containerClass + ' ' + o.hideClass + '"></div>'))
[method](position > 0 ? this.$containers[position - 1] : $(this.source));
}
var $foo = $('<li><a href="' + url + '"><span>' + text + '</span></a></li>');
if(position > 0) $foo[method](this.$tabs.slice(position - 1, position).parents('li:eq(0)'));
else {
$foo.appendTo($(this.source));
$container.removeClass('ui-tabs-hide');
}
Basically we've to check if this.$tabs array is not empty...
Change History
comment:3 Changed 6 years ago by klaus
- Status changed from assigned to closed
- Resolution set to fixed
comment:4 Changed 10 months ago by Nick Kusters <jquery@…>
Error Still Exists. See http://jsfiddle.net/zmRT8/18/ for Bug demo + workaround. Fix in the source should be as simple as checking if the UL element exists when calling .add, and adding it if it doesn't.
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
Note: See
TracTickets for help on using
tickets.
