Mike's Archive
Tuesday, October 30th, 2007
I’ve been developing jQuery plugins for quite a while now, and I’ve become rather comfortable with a particular style of plugin development for my scripts. This article is meant to share the pattern that I’ve found especially useful for plugin authoring. It assumes you already have an understanding of plugin development for jQuery; if you’re a novice plugin author, please review the jQuery Authoring Guidelines first.
There are a few requirements that I feel this pattern handles nicely:
- Claim only a single name in the jQuery namespace
- Accept an options argument to control plugin behavior
- Provide public access to default plugin settings
- Provide public access to secondary functions (as applicable)
- Keep private functions private
- Support the Metadata Plugin
I’ll cover these requirements one by one, and as we work through them we’ll build a simple plugin which highlights text.
(more…)
Posted in Advanced, Plugins, jQuery | 34 Comments »
Thursday, August 16th, 2007
A question I often hear is, “How do I clear a form?”
Initially the answer seems very straightforward - a one-liner in jQuery:
$('form :input').val("");
But upon closer examination we find that this is a bad way to solve the problem. When someone says they want to “clear a form” what they really mean is that they want to clear the visible state from all the form fields. With this in mind, the code above is clearly not the right way to get the job done. First, it will blast away the values of hidden inputs, checkboxes and radio buttons. Not good. The values of those fields should not be altered. And second, it does not properly account for select elements. What we need is something smarter. Here’s a start:
(more…)
Posted in Intermediate, jQuery | 14 Comments »
Sunday, August 5th, 2007
One of the most confusing aspects of jQuery is how it assigns scope during callbacks. It must be confusing because the topic generates a lot of questions on the mailing list. It’s too bad, really, because jQuery sets the scope in order to simplify your code, not make it more confusing.
So here are some pointers that may help you remember what this is.
(more…)
Posted in Intermediate, jQuery | 12 Comments »