Does anyone know of a good example of an object-oriented plugin for jQuery?

The reason I ask is that the jQuery convention is to return *this* at the
end of the plugin to allow for chaining. While that's great for simple
plugins, some of my advanced plugins instantiate object that I would like to
access at various points in my script.

>From the looks of it, jQuery's "tabs" plugin seems to use an object stored
"somewhere" (perhaps in the element). But to invoke methods on that object,
you have to call the plugin again and pass it a string as its first
parameter:

http://docs.jquery.com/UI/Tabs/tabs#.22enable.22index
jQuery#tabs( "add", url, label, [index] )

To be honest, this seems a little awkward for me. This means I would have to
write my plugin to check the first parameter to see if it's a string or an
object, and if it's a string I then would have to make a switch to call the
approriate method based on the string value.

I would much rather be able to access the tabs instance directly:

var tabs = $('#tabbed').tabs(); // tabs is instance of jQueryTabs
tabs.add(url, label); // accessing instance directly

But if tabs acted like that, it would break chaining.

$('#tabbed').tabs().hide(); // This would error

Is there another way to create object-oriented plugins, while still
following the jQuery conventions?

Thanks!

-Hector

Reply via email to