User:Afuna/JQuery Template
From Dreamwidth Notes
(function($) { $.widget("dw.someplugin", { // magic functions / conventions options: { optiontobepassedin: undefined, optionwithdefault: "default value", }, _create: function() { // called only once. optional // use self, rather than this in any big function // to avoid issues with nested event listeners var self = this; self.element // magic! element the widget was called on .click(function(e) { this.... // refers to the clicked element }); }, _init: function() { // may be called multiple times. optional }, widget: function() { // return the outermost HTML element that the widget creates // e.g., a dropdown menu, a tooltip, etc // can be called from outside // as $("#someelement").someplugin( "widget" ) return ...; }, // custom functions publicfunction: function() { // something that can be called from outside // as $("#someelement").someplugin( "publicfunction" ) }, _privatefunction: function() { // something that can only be called internally } }); })(jQuery); jQuery(function($) { $("a").someplugin(); // create the widget on all links, which also initializes // any event listeners that are defined in _create });