Plugin design recommendations
Now that we have examined common ways to extend jQuery and jQuery UI by creating plugins, we can review and supplement what we've learned with a list of recommendations:
- Protect the dollar (
$) alias from potential interference from other libraries by usingjQueryinstead or passing$into an IIFE, so that it can be used as a local variable. - Whether extending the jQuery object with
$.myPluginor the jQuery prototype with$.fn.myPlugin, add no more than one property to the$namespace. Additional public methods and properties should be added to the plugin's namespace (for example,$.myPlugin.publicMethodor$.fn.myPlugin.pluginProperty). - Provide an object containing default options for the plugin:
$.fn.myPlugin.defaults = {size: 'large'}. - Allow the plugin user to optionally override any of the default settings for all subsequent calls to the method (
$.fn.myPlugin.defaults.size = 'medium';) or for a single call ($('div').myPlugin({size: 'small'});). - In most cases when...