jQuery: Novice to Ninja, 2nd Edition is the perfect book to jump-start your journey into jQuery. You’ll learn all the basics, so you’ll be able to truly appreciate the power of this JavaScript framework. Then you’ll move on to more advanced techniques, such as plugin development and the creation of almost every conceivable UI widget.
- A practical, hands-on guide to using jQuery
- Ready-to-use best practice solutions
- Includes complete working code
- Fully updated for jQuery 1.6
Author(s): Earle Castledine, Craig Sharkie
Edition: Second Edition
Publisher: SitePoint
Year: 2012
Language: English
Pages: 480
Front cover......Page 1
Summary of Contents......Page 3
jQuery: Novice to Ninja......Page 5
Table of Contents......Page 11
Preface......Page 19
What’s in This Book......Page 20
The SitePoint Forums......Page 23
The SitePoint Podcast......Page 24
Conventions Used in This Book......Page 25
Code Samples......Page 26
Tips, Notes, and Warnings......Page 27
Falling in Love with jQuery......Page 29
Cross-browser Compatibility......Page 30
Helpful Utilities......Page 31
jQuery UI......Page 32
Plugins......Page 33
Keeping Markup Clean......Page 34
What’s the downside?......Page 35
Downloading jQuery......Page 36
The Google Content Distribution Network (CDN)......Page 38
Nightlies and Github......Page 39
Anatomy of a jQuery Script......Page 40
Dissecting a jQuery Statement......Page 41
Bits of HTML, aka “The DOM”......Page 43
If You Choose to Accept It …......Page 45
Selecting, Decorating, and Enhancing......Page 47
Making Sure the Page Is Ready......Page 48
Selecting: The Core of jQuery......Page 49
Simple Selecting......Page 50
Narrowing Down Our Selection......Page 52
Testing Our Selection......Page 53
Using Multiple Selectors......Page 54
Decorating: CSS with jQuery......Page 55
Setting CSS Properties......Page 56
Classes......Page 59
Adding and Removing Classes......Page 60
Hiding and Revealing Elements......Page 62
this......Page 63
Toggling Elements......Page 64
Progressive Enhancement......Page 67
Adding New Elements......Page 68
Removing Existing Elements......Page 71
Modifying Content......Page 72
Basic Animation: Hiding and Revealing with Flair......Page 73
Toggling Effects and Animations......Page 74
Callback Functions......Page 75
Highlighting When Hovering......Page 76
Spoiler Revealer......Page 78
Before We Move On......Page 80
Animating......Page 81
Animating CSS Properties......Page 82
Color Animation......Page 84
Easing......Page 85
Advanced Easing......Page 86
Bouncy Content Panes......Page 88
The Animation Queue......Page 91
Chaining Actions......Page 92
Pausing the Chain......Page 93
Animated Navigation......Page 94
Animated Navigation, Take Two......Page 97
The jQuery UI Library......Page 100
The scroll Event......Page 102
Floating Navigation......Page 103
Scrolling the Document......Page 105
Custom Scrollbars......Page 108
Layout Switcher......Page 110
Resizable Elements......Page 113
Resizable textarea......Page 114
Pane Splitter......Page 116
That’s How We Scroll. And Animate......Page 120
Images and Slideshows......Page 121
Custom Lightbox......Page 122
Troubleshooting with console.log......Page 127
ColorBox: A Lightbox Plugin......Page 128
Cropping Images with Jcrop......Page 132
Cross-fading Slideshows......Page 135
Rollover Fader......Page 136
JavaScript Timers......Page 138
Setting up a Timer......Page 139
Stopping Timers......Page 140
Fading Slideshow......Page 141
True Cross-fading......Page 143
News Ticker with InnerFade......Page 147
The Cycle Plugin......Page 149
Thumbnail Scroller......Page 151
A Scrolling Gallery with scrollTo......Page 154
Smarter Scrolling with the data Method......Page 157
iPhoto-like Slideshow Widget......Page 158
Creating a Widget......Page 160
Event Handler Parameters......Page 164
Image-ine That!......Page 165
Menus, Tabs, Tooltips, and Panels......Page 167
Expandable/Collapsible Menus......Page 168
Event Propagation......Page 171
Open/Closed Indicators......Page 173
Menu Expand on Hover......Page 175
Drop-down Menus......Page 176
Cross-browser Menus......Page 177
Hover Intent......Page 180
A Simple Accordion......Page 181
Multiple-level Accordions......Page 186
jQuery UI Accordion......Page 188
Basic Tabs......Page 189
jQuery UI Tabs......Page 192
Tab Options......Page 194
Panels and Panes......Page 195
Slide-down Login Form......Page 196
Sliding Overlay......Page 197
Tooltips......Page 201
Simple Styled Tooltips......Page 202
Advanced Tooltips and Dialogs......Page 205
Order off the Menu......Page 213
Construction, Ajax, and Interactivity......Page 215
Code Comments......Page 216
Map Objects......Page 217
Namespacing Your Code......Page 218
Scope......Page 220
Client-side Templating......Page 222
Templating Systems......Page 225
Browser Sniffing (… Is Bad!)......Page 226
Feature Detection......Page 227
What Is Ajax?......Page 228
Enhancing Hyperlinks with Hijax......Page 229
Picking HTML with Selectors......Page 231
Prepare for the Future: on and off......Page 233
Fetching Data with $.getJSON......Page 235
A Client-side Twitter Searcher......Page 236
The jQuery Ajax Workhorse......Page 237
Loading External Scripts with $.getScript......Page 239
GET and POST Requests......Page 240
Handling Responses with Promises......Page 241
jQuery Ajax Events......Page 242
Interactivity: Using Ajax......Page 243
Ajax Image Gallery......Page 244
Randomizing the Images......Page 247
Adding a Spinner......Page 249
Global Progress Indicator......Page 251
Endless Scrolling......Page 252
Handling Errors......Page 255
Consuming XML......Page 259
Sending Form Data......Page 263
Ajax Ninjas? Check!......Page 266
Forms, Controls, and Dialogs......Page 267
Simple Form Validation......Page 268
Speaking of Over-validating …......Page 272
The submit Event......Page 273
Form Validation with the Validation Plugin......Page 274
Maximum Length Indicator......Page 277
Form Hints......Page 279
Check All Checkboxes......Page 281
Inline Editing......Page 282
Autocomplete......Page 289
Star Rating Control......Page 292
Controls......Page 298
Buttons......Page 299
Date Picker......Page 300
Sliders......Page 303
Drag and Drop......Page 307
draggable......Page 309
droppable......Page 310
The “Puff” Effect......Page 311
jQuery UI sortable......Page 315
Progress Bar......Page 317
Simple Modal Dialog......Page 319
jQuery UI Dialog......Page 323
Growl-style Notifications......Page 326
1-up Notification......Page 330
We’re in Good Form......Page 332
Lists, Trees, and Tables......Page 333
jQuery UI Selectables......Page 334
$.map and $.inArray......Page 338
Accessing the Data......Page 339
Sorting Lists......Page 341
Swapping List Elements......Page 343
Inverting a Selection......Page 345
Searching through Lists......Page 347
Expandable Tree......Page 348
Event Delegation......Page 352
Fixed Table Headers......Page 354
Repeating Header......Page 358
Data Grids......Page 361
Pagination......Page 362
Editing a Row......Page 366
Data Grid Plugins......Page 370
Selecting a Column of Checkboxes......Page 371
Shift-selecting Checkboxes......Page 372
We’ve Made the A-list!......Page 373
Plugins......Page 375
Setting Up......Page 376
Adding the Plugin’s Functionality......Page 378
Adding Options......Page 379
Adding Callbacks......Page 381
jQuery-style Callback......Page 383
Adding Methods to jQuery......Page 385
$. Prefixed Functions......Page 387
Overwriting Existing Functionality......Page 389
Create Your Own Selectors......Page 397
Custom Events......Page 398
Unbinding and Namespacing......Page 402
Binding the iPhone: Nonstandard Events......Page 404
The special Event......Page 406
Avoiding Conflicts......Page 409
Queuing and Dequeuing Animations......Page 410
Treating JavaScript Objects as jQuery Objects......Page 412
Using Gallery Themes......Page 414
Rolling Your Own......Page 415
Making Your Components Themeable......Page 416
And By No Means Least......Page 418
Playing Your Trump......Page 420
StarTrackr!: Epilogue......Page 436
Flags......Page 437
Settings......Page 438
Callbacks and Functions......Page 441
$.support Options......Page 442
Event Properties......Page 445
DIY Event Objects......Page 446
Type Coercion......Page 447
Equality Operators......Page 448
Truthiness and Falsiness......Page 449
Unmasking jQuery......Page 451
Selector and Context......Page 453
The jQuery Stack......Page 454
Minification......Page 455
Index......Page 458
jQuery Quiz......Page 481
Back Cover......Page 483