Correct place to define options in jquery plugin
===

I have a jQuery plugin that uses namespacing (methods) and also has options, with defaults, that can be overridden on initialization.  
  
I'm wondering what the best way to define and use options is with this plugin in the namespaces.

I was originally using a `$.fn.dropIt.settings` within the wrapper function to define the settings, but then switched to defining them inside of the `init` method. This is very limiting in terms of scope however..

Here is the relevant code in my plugin

    (function($, window, document, undefined){
      var methods = {
          init: function(options)
          {
            var settings = $.extend({
              trigger: "hover",
              animation: 'slide', /* none, slide, fade, grow */
              easing: 'swing', /* swing, linear, bounce */
              speedIn: 400,
              speedOut: 400,
              delayIn: 0,
              delayOut: 0,
              initCallback: function(){},
              showCallback: function(){},
              hideCallback: function(){}
            }, options);
    
            $(this).each(function(index, ele){
              $ele = $(ele);
              $ele.addClass('dropit');
              //Attach event handlers to each list-item
              $('li', $ele).dropIt('attach', settings);
    
              //If list is displayed veritcally, add extra left padding to all sub-menus
              if($(ele).hasClass('vertical'))
              {
                $('li', $ele).find('ul').addClass('nested sub-menu');
              } else {
                $('li ul', $ele).addClass('nested').find('ul').addClass('sub-menu');
              }
            });
    
            //Call custom callback
            settings.initCallback.call();
    
            //Return jQuery collection of lists
            return $(this);
          },
    
          attach: ...
    
          _trigger: ...
    
          _hide: ...

          }
        };
    
      $.fn.dropIt = function(method){
        //Variables and Options
        var $this = $(this);
        // Method calling logic
        if ( methods[method] ) {
          return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
          return methods.init.apply( this, arguments );
        } else {
          $.error( 'Method ' +  method + ' does not exist on jQuery.dropIt' );
        }
      };
    
    })(jQuery, window, document);