What is the best way to replace the currently selected tab and its contents? The content is dynamically generated with jquery, not loaded via a URL.
I need to do this from outside of any tab code or tab event handler (show, add, etc.). There is a link elsewhere on the page that should do the following when clicked:
- Change the tab's title
- Change the tab's className
- Clear out all elements of the tabcontent div
- Change the tabcontent div's className
- Generate new content inside the tabcontent div
Note that the only reference this link's click() handler has is to the JQuery tabs object ($Tabs). I can get the selected tab with $Tabs.tabs('option','selected')
. But how can I get a reference to the selected tab's tab and panel? Inside of a jquery tab handler (show, add, etc.), I have access to ui.tab
and ui.panel
, but is there a way to get them from a tabs option?
Would it be better to simply remove the currently selected tab and then add a new tab in the same index location? I'd have to put the code to generate the tab content into the add() handler then I suppose.
EDIT: I'm surprised nobody has any suggestions. I have things working by removing the currently selected tab and then adding a new tab in the same location. In a fast browser, this is a decent solution, but in a browser with slow javascript, you can actually see the tab disappear and then a new one appear. It works, but it really isn't optimal.