
As an experienced jQuery plugin developer and the operator of a website devoted to jQuery education, I have had many opportunities to talk with other developers and understand what works and what doesn’t when it comes to learning how to build plugins. This short guide is intended to quickly get you up to speed with core concepts, which will enable you to start building plugins of your own.Experienced developers know that well-written jQuery plugins can reduce bugs, increase efficiency, improve collaboration, and save time. In jQuery Plugin Development in 30 Minutes, I'll show you how to write clean and efficient jQuery plugins that are easy to maintain and collaborate on. While jQuery Plugin Development in 30 Minutes is intended for people who already have some experience with JavaScript and jQuery, most of the concepts in the guide will not require any advanced knowledge. Topics include:Creating a pluginPrototypingGenerate, Init, and DestroyHandling eventsPlugin optionsSetters and GettersStyling, CSS, and themesCallbacksBrowser and mobile supportFile organization and versioningBoilerplateI've also included bonus content, including sections on jQuery methods, utilities, selectors, and events, as well as a jQuery glossary. jQuery Plugin Development in 30 Minutes really is intended to be a short but productive read -- my intention is to avoid the fluff and filler that make up 80% of most programming books, and just get straight to the point!The full table of contents is below:IntroductionAbout This GuideWhy jQuery Plugins?Section 01: CreationNamingClosuresPlugin Function SummarySection 02: PrototypingThe Main LoopThe get() MethodPlugin ClassPrototypingSummarySection 03: ConventionsGenerateDestroyInit$varPrivate Functions This & That$.proxy()SummarySection 04: EventsNote on .hover()e.currentTarget vs e.target Disabling Event Bubbling Naming Events Naming Functions SummarySection 05: OptionsDefault OptionsPlugin OptionsAdditional OptionsData OptionsAdvanced Options Setter SummarySection 06: Setters and Getters SettersGettersMethodsThe RoutineAuto-CreationSummarySection 07: CSS and ThemesNamingCSSSetting Themes Multiple ThemesSummarySection 08: EffectsStatesControllerSummarySection 09: CallbacksSetupAjaxNamingSummarySection 10: Browser and Mobile SupportBrowser SupportExtending $.supportMobile SupportSummarySection 11: File OrganizationSimpleWith GruntGitVersioning SummarySection 12: BoilerplateSection 13: ConclusionBonus ContentSection 14: jQuery MethodsSection 15: jQuery UtilitiesSection 16: jQuery Selectors Section 17: jQuery Events Glossary
Author: Robert Duchnik