Ok, I'm really trying to wrap my head around this, and it's irritating me. I've checked out the following pages:
http://docs.jquery.com/Plugins/Authoring http://www.learningjquery.com/2007/10/a-plugin-development-pattern And they help some but there's one problem I'm running into. I have: $.fn.myPlugin = function(options) { $.myPlugin.defaults = $.extend($.myPlugin.defaults, options); return(this); }; $.myPlugin = { defaults: { def1: 'default1', def2: 'default2', ... defx: 'defaultx' }, myFunc: function() { var options = $.myPlugin.defaults; //do something here, anything really }, myFunc2: function() { var options = $.myPlugin.defaults; //do something here, again, anything } }; Now, I want to do something like this: jQuery().myPlugin({def1: 'other_def1', def2: 'other_def2'}).myFunc(); Can I? Because it's not working. It tells me that jQuery().myPlugin({def1: 'other_def1', def2: 'other_def2'}) is not a function. However, if I change it so that myFunc is $.fn.myFunc = function() { }, then I can, but I have to do it as: jQuery().myPlugin({def1: 'other_def1', def2: 'other_def2'}).myPlugin.myFunc(); Which I don't like. None of the tutorials or documentation I can find is clear on this point, though they do refer to the functions in $.myPlugin as being user-accessable... and they are, but only if I do $.myPlugin.myFunc. I can't chain. And I want to be able to do that.