02.06.2013 Views

jQuery in Action - Manning Publications

jQuery in Action - Manning Publications

jQuery in Action - Manning Publications

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8 CHAPTER 1 Introduc<strong>in</strong>g <strong>jQuery</strong><br />

Unobtrusive JavaScript, though a powerful technique to add to the clear separation<br />

of responsibilities with<strong>in</strong> a web application, doesn’t come without a price. You<br />

might already have noticed that it took a few more l<strong>in</strong>es of script to accomplish our<br />

goal than when we placed it <strong>in</strong>to the button markup. Unobtrusive JavaScript may<br />

<strong>in</strong>crease the l<strong>in</strong>e count of the script that needs to be written, and it requires some discipl<strong>in</strong>e<br />

and the application of good cod<strong>in</strong>g patterns to the client-side script.<br />

But none of that is bad; anyth<strong>in</strong>g that persuades us to write our client-side code<br />

with the same level of care and respect usually allotted to server-side code is a good<br />

th<strong>in</strong>g! But it is extra work—without <strong>jQuery</strong>, that is.<br />

As mentioned earlier, the <strong>jQuery</strong> team has specifically focused <strong>jQuery</strong> on the task<br />

of mak<strong>in</strong>g it easy and delightful for us to code our pages us<strong>in</strong>g Unobtrusive JavaScript<br />

techniques, without pay<strong>in</strong>g a hefty price <strong>in</strong> terms of effort or code bulk. We’ll f<strong>in</strong>d that<br />

mak<strong>in</strong>g effective use of <strong>jQuery</strong> will enable us to accomplish much more on our pages<br />

while writ<strong>in</strong>g less code.<br />

Without further ado, let’s start look<strong>in</strong>g at how <strong>jQuery</strong> makes it so easy for us to add<br />

rich functionality to our pages without the expected pa<strong>in</strong>.<br />

1.3 <strong>jQuery</strong> fundamentals<br />

At its core, <strong>jQuery</strong> focuses on retriev<strong>in</strong>g elements from HTML pages and perform<strong>in</strong>g<br />

operations upon them. If you’re familiar with CSS, you’re already well aware of the<br />

power of selectors, which describe groups of elements by their type, attributes, or<br />

placement with<strong>in</strong> the document. With <strong>jQuery</strong>, we can employ that knowledge, and<br />

that degree of power, to vastly simplify our JavaScript.<br />

<strong>jQuery</strong> places a high priority on ensur<strong>in</strong>g that code will work consistently across all<br />

major browsers; many of the more difficult JavaScript problems, such as wait<strong>in</strong>g until<br />

the page is loaded before perform<strong>in</strong>g page operations, have been silently solved for us.<br />

Should we f<strong>in</strong>d that the library needs a bit more juice, <strong>jQuery</strong> has a simple but<br />

powerful built-<strong>in</strong> method for extend<strong>in</strong>g its functionality via plug<strong>in</strong>s. Many new <strong>jQuery</strong><br />

programmers f<strong>in</strong>d themselves putt<strong>in</strong>g this versatility <strong>in</strong>to practice by extend<strong>in</strong>g <strong>jQuery</strong><br />

with their own plug<strong>in</strong>s on their first day.<br />

Let’s start by tak<strong>in</strong>g a look at how we can leverage our CSS knowledge to produce<br />

powerful, yet terse, code.<br />

1.3.1 The <strong>jQuery</strong> wrapper<br />

When CSS was <strong>in</strong>troduced to web technologies <strong>in</strong> order to separate design from content,<br />

a way was needed to refer to groups of page elements from external style sheets.<br />

The method developed was through the use of selectors, which concisely represent<br />

elements based upon their type, attributes, or position with<strong>in</strong> the HTML document.<br />

Those familiar with XML might be rem<strong>in</strong>ded of XPath as a means to select elements<br />

with<strong>in</strong> an XML document. CSS selectors represent an equally powerful concept,<br />

but are tuned for use with<strong>in</strong> HTML pages, are a bit more concise, and are generally<br />

considered easier to understand.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!