/** * jQuery plugin pattern * * An example or pattern for jQuery plugin authoring * */ ( function ( $ ) { /** * Use the following vars to define your function * * Sample call: "jQuery.%pluginName%( "%method%", args );" */ // the function name of the plugin var pluginName = "myPlugin", // the used methods methods = { /** * Initializing function * * This function will be called, if no method is set in params * Example: jQuery.myPlugin( { foo: 'bar' };" or jQuery.myPlugin( false, { foo: 'bar' } );" * * @param options mixed All Parameters given to the jQuery as Array or Object */ init:function ( options ) { console.info( "init" ); console.log( options ); alert("Usage: jQuery()." + pluginName + "('method',{foo: 123, bar: 'baz'});"); }, /** * Initializing function * * This function will be called, if no method is set in params * Example: jQuery.myPlugin( { foo: 'bar' };" or jQuery.myPlugin( false, { foo: 'bar' } );" * * @param options mixed All Parameters given to the jQuery as Array or Object */ show:function ( options ) { console.info( "show" ); console.log( options ); }, hide:function () { console.info( arguments ); console.info( this ); return this; } }; /** * jQuery plugin registration and method call logic * * Usually you don't have to change this. */ $.fn[ pluginName ] = function ( method ) { // get the target var $this = $( this ); // Method logic if ( typeof methods[ method ] === "function" ) { return methods[ method ].apply( $this, Array.prototype.slice.call( arguments, 1 ) ) || $this; } else if ( typeof method === 'object' || !method ) { return methods.init.apply( $this, arguments ) || $this; } else { $.error( "Method " + method + " does not exist on jQuery." + pluginName ); // return always $this, becuase of fluent usage return $this; } }; })( jQuery );