I have an application where I'm using tabs to show three sets of form
fields. A user can only use one of the three sets at a time, so I want
to disable those that are hidden. This is easily done when a new tab
is clicked, using the show callback. However, doing so when the tabs
have finished initializing is not possible using the current code.
Below is a patch to add this ability via an init callback.
I used a setTimeout because calling the init callback immediately
didn't work quite correctly when using a simple (from cache) page
refresh. I'm not sure why and if there is a better place to call the
init method, there's no reason not to put it elsewhere.
--- jquery.ui-tabs.js 2008-11-26 10:59:11.669434000 -0600
+++ jquery.ui-tabs_init.js 2008-11-26 10:59:03.435059000 -0600
@@ -86,6 +86,7 @@
hide: function() {},
show: function() {},
load: function() {},
+ init: function() {},
// templates
tabTemplate: '<li><a href="#{href}"><span>#{text}</span></
a></li>',
@@ -221,6 +222,11 @@
this.load(o.initial + 1, href);
}
+ if (o.init && o.init.constructor == Function) {
+ // using timeout to properly init() on page refresh
+ setTimeout(o.init, 5);
+ }
+
}
// setup animations
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" 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-dev?hl=en
-~----------~----~----~----~------~----~------~--~---