If you want to use two different functions in the chain then you need
to define two plugin functions:

// wrap it all in a closure so you can share private data easily
(function() {

$.fn.myPlugin1 = function(options) {
    var myOptions = $.extend(defaults, options);
    // do stuff
};

$.fn.myPlugin2 = function(options) {
    var myOptions = $.extend(defaults, options);
    // do stuff
};

var defaults = {
   def1: 'default1',
   def2: 'default2',
   ...
   defx: 'defaultx'
};

})();



On Tue, Mar 4, 2008 at 2:09 PM, Leanan <[EMAIL PROTECTED]> wrote:
>
>  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.
>

Reply via email to