jQuery – Creating Plug-ins
Last week we looked at how to have jQuery execute our own functions. I suggested at the time that if you were going to need to use that function in multiple applications, you might want to consider turning it into a plug-in.
Today we’ll look at how to do that.
Before we start we need to take a look at what the $ in jQuery represents. It actually represents the jQuery variable so that we can use either:
$('someElement')
jQuery('someElement')
to retrieve the list of “someElement” elements in your DOM. You need to know this prior to creating a plug-in because the code you write in your plug-in should use the jQuery variable instead of the $ variable (alias, really) because it is possible that the $ alias may have been turned off by whoever is using your plug-in. They would do this if they had another library that was also using the $ for something and using it in jQuery would cause a variable collision.
To create the actual plug-in you extend the jQuery.fn object. fn is an internal object that hangs off the jQuery variable. To create a new method for jQuery, just give it a name and assign it to an anonymous function:
jQuery.fn.NewFunc = function() { alert('you called NewFunc'); }
running the code above would then allow us to write this code:
$('someElement').NewFunc();
which would display the alert box with ‘you called NewFunc’ as the message once and only once.
But typically, we want our method to do something with the elements that were selected. We do this by accessing this and using the each function we introduced last week.
jQuery.fn.NewFunc = function() { this.each(function() { alert('you called NewFunc on ' + this); }); }
Now the alert box shows for each element that was retrieved.
The last thing we need to do is to return this from the method so that we can chain the methods together with other methods.
jQuery.fn.NewFunc = function() { this.each(function() { alert('you called NewFunc on ' + this); }); return this; }
You would then include this code in a ready handler of a separate js file and include the js file in your html page so that you could use it in the jQuery code elsewhere in your application.
You should name your plug-in’s js file as “jquery.” + pluginName + “.js” (Hey, sometimes using code is more clear than trying to type it all out in prose.)
We’ll take a look at parameter passing and what to do if the method is supposed to filter the list of objects we started with in later articles.
Other post in jQuery
- jQuery - The Man, The Myth, The Legend - October 8th, 2008
- Getting started with jQuery and ASP.NET - October 15th, 2008
- jQuery - Explaining Last Week's Code - October 21st, 2008
- Friday Books - "Learning jQuery" - October 24th, 2008
- jQuery Simple Selectors - October 28th, 2008
- Friday Books - "jQuery in Action" - October 31st, 2008
- jQuery Selectors - Looks just like CSS - November 6th, 2008
- VS2008 SP1 Hotfix to Support "-vsdoc.js" IntelliSense Doc Files - November 11th, 2008
- jQuery Looks like XPath - November 12th, 2008
- jQuery - class manipulation - November 19th, 2008
- jQuery - Events - December 2nd, 2008
- Host jQuery at Google (with Intellisense support) - December 10th, 2008
- jQuery - Calling Your Own Functions - December 16th, 2008
- Friday Books - jQuery Reference Guide - December 19th, 2008
- jQuery - Creating Plug-ins - December 23rd, 2008
- jQuery - Loading Partial Content - December 30th, 2008
- jQuery - Positioning Elements - January 6th, 2009
- AjaxToolKit TabControl Disabled Tab - January 12th, 2009
- jQuery, JSON, and ASP.NET - January 15th, 2009
- Review of the MDC at NYC - January 21st, 2009
- jQuery - Retrieving HTML Fragments - January 22nd, 2009
- jQuery GUI - Drag - February 3rd, 2009
- jQuery - Drop - February 12th, 2009
- jQuery UI - Resizable w/ ASP.NET Themes - February 18th, 2009
- jQuery, bgiframe and IE6 z-order hacks - February 19th, 2009
- jQuery - Sliders (scrollbars to the rest of us) - March 4th, 2009
- jQuery - Using Slider as a Scrollbar - March 12th, 2009
- jQuery - Auto Scrolling the Slider - March 23rd, 2009
- Live Presentation of jQuery - March 23rd, 2009
- Just a Week Away! - April 7th, 2009
- jQuery Tabs - April 9th, 2009
- jQuery Demos From Last Tuesday’s Presentation - April 16th, 2009
- jQuery – Accordion - May 6th, 2009
- CustomValidationControl and jQuery - May 11th, 2009
- Mixing ASP.NET, jQuery and JSON - May 12th, 2009
- jQuery Progressbar - May 20th, 2009
- jQuery – Dialog - June 2nd, 2009
- jQuery – Modal Dialog - June 9th, 2009
- Does jQuery Make Us Lazy? - June 18th, 2009
- jQuery Dialog – With Validation Controls - June 25th, 2009
- jQuery – Date Picker - July 2nd, 2009
- jQuery Splitter - July 21st, 2009
- jQuery Expand/Collapse Using Head Tags - October 15th, 2009
- Do you Need My Help? - November 18th, 2009
- Flash to jQuery - November 30th, 2009
- JQuery, Cufon, and Dynamic Content - December 1st, 2009
- jQuery, Each() and Async Gets - December 2nd, 2009
- jQuery and ASP.NET UpdatePanel - January 6th, 2010
- jQuery 1.4 Released - January 15th, 2010
Other Related Items:
No More War Peace Sign Distressed logo Women's Tee Shirt in 6 Colors Small thru XXLPick from the petite form-fitting babydoll style or standard regular fit womens style. Please refer to our sizing chart for measurements.This design also available as a men's Tee shirt, and a men's hoodie and sweat shirt in our other amazon.com listings.











[...] jQuery – Creating Plugins (Dave M. Bush) [...]