The ui-tabs plugin is hard coded to assume that the tabs <ul> is a
child of the current element.

The code in question is in the _tabify method:

  _tabify: function(init) {
      this.list = this.element.children('ul:first');
      ...
  }

Some css limitations in a recent project required that my <ul> needed
be within a <div>, causing the tabs plugin to fail to locate the <ul>
list.

I changed the code to use find() instead of children() and added an
option to the defaults as follows:
(Note the use of ">" in the selector to ensure find() continues to
work the way children() by default)

  _tabify: function(init) {
      this.list = this.element.find(this.options.listSelector);
      ...
  }

  defaults: {
      ...
      listSelector: '>ul:first'
  }

Now, when I initialise the tabs plugin, I can specify listSelector:
'>DIV>ul:first' to handle my non-standard markup.

I hope this is of help to some of you. It would be nice to see this
type of flexibility make it into the live code.

George

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery UI" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jquery-ui?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to