Style Guide

link Formatting ConventionsArticles in the learn site are authored with GitHub Flavored Markdown, and the beginning of each article contains some JSON "front matter" that contains metadata used when the article is published. link Article Header MetadataEach article should have the following header (see below as some metatags are optional): 1 2 3 4 5 … Continue reading

Writing Stateful Plugins with the jQuery UI Widget Factory

link Writing Stateful Plugins with the jQuery UI Widget FactoryWhile most existing jQuery plugins are stateless – that is, we call them on an element and that is the extent of our interaction with the plugin – there's a large set of functionality that doesn't fit into the basic plugin pattern. In order to fill … Continue reading

Introduction to Effects

link Showing and Hiding ContentjQuery can show or hide content instantaneously with .show() or .hide(): 1 2 3 4 5 // Instantaneously hide all paragraphs$( "p" ).hide(); // Instantaneously show all divs that have the hidden style class$( "div.hidden" ).show(); When jQuery hides an element, it sets its CSS display property to none. This means … Continue reading

How to Create a Basic Plugin

Sometimes you want to make a piece of functionality available throughout your code. For example, perhaps you want a single method you can call on a jQuery selection that performs a series of operations on the selection. In this case, you may want to write a plugin. link How jQuery Works 101: jQuery Object MethodsBefore … Continue reading

Selecting Elements

The most basic concept of jQuery is to "select some elements and do something with them." jQuery supports most CSS3 selectors, as well as some non-standard selectors. For a complete selector reference, visit the Selectors documentation on api.jquery.com. link Selecting Elements by ID 1 $( "#myId" ); // Note IDs must be unique per page. … Continue reading

Key Concepts

Proper use of Ajax-related jQuery methods requires understanding some key concepts first. link GET vs. POSTThe two most common "methods" for sending a request to a server are GET and POST. It's important to understand the proper application of each. The GET method should be used for non-destructive operations — that is, operations where you … Continue reading

Using jQuery UI with Bower

**Note:** This documentation refers to functionality made available in jQuery UI 1.11. Bower is a package manager for the Web. You can use Bower to download libraries like jQuery UI from the command line, without having to manually download each project from their respective sites. As an example, suppose we're starting a new project and … Continue reading

Additional jQuery Support

While we hope to cover most jQuery-related topics on this site, you may need additional or more immediate support. The following resources can prove useful. link Official Forumshttp://forum.jquery.com/ There are many subforums where you can discuss jQuery, ask questions, talk about JavaScript, or announce your plugins. Getting Started This is the best place to post … Continue reading

Handling Events

jQuery provides a method .on() to respond to any event on the selected elements. This is called an event binding. Although .on() isn't the only method provided for event binding, it is a best practice to use this for jQuery 1.7+. To learn more, read more about the evolution of event binding in jQuery. The … Continue reading

Introducing Events

link IntroductionWeb pages are all about interaction. Users perform a countless number of actions such as moving their mice over the page, clicking on elements, and typing in textboxes — all of these are examples of events. In addition to these user events, there are a slew of others that occur, like when the page … Continue reading

Optimize Selectors

Selector optimization is less important than it used to be, as more browsers implement document.querySelectorAll() and the burden of selection shifts from jQuery to the browser. However, there are still some tips to keep in mind when selector performance becomes a bottleneck. link jQuery ExtensionsWhen possible, avoid selectors that include jQuery extensions. These extensions cannot … Continue reading

Getting Started with jQuery Mobile

jQuery Mobile provides a set of touch-friendly UI widgets and an Ajax-powered navigation system to support animated page transitions. This guide will show you how you can build your first jQuery Mobile application. link Create a Basic Page TemplateTo get started, you can simply paste the template below in your favorite text editor, save, and … Continue reading

Advanced Plugin Concepts

link Provide Public Access to Default Plugin SettingsAn improvement we can, and should, make to the code above is to expose the default plugin settings. This is important because it makes it very easy for plugin users to override/customize the plugin with minimal code. And this is where we begin to take advantage of the … Continue reading

Feature & Browser Detection

link Can I Use This Browser Feature?There are a couple of common ways to check whether or not a particular feature is supported by a user's browser: Browser Detection Specific Feature Detection In general, we recommend specific feature detection. Let's look at why. link Browser DetectionBrowser detection is a method where the browser's User Agent … Continue reading

$( document ).ready()

A page can't be manipulated safely until the document is "ready." jQuery detects this state of readiness for you. Code included inside $( document ).ready() will only run once the page Document Object Model (DOM) is ready for JavaScript code to execute. Code included inside $( window ).on( "load", function() { … }) will run … Continue reading

CSS, Styling, & Dimensions

jQuery includes a handy way to get and set CSS properties of elements: 1 2 3 4 5 // Getting CSS properties. $( "h1" ).css( "fontSize" ); // Returns a string such as "19px". $( "h1" ).css( "font-size" ); // Also works. 1 2 3 4 5 6 7 8 9 // Setting CSS properties. … Continue reading

Introducing Custom Events

link Custom EventsWe're all familiar with the basic events — click, mouseover, focus, blur, submit, etc. — that we can latch on to as a user interacts with the browser. Custom events open up a whole new world of event-driven programming. It can be difficult at first to understand why you'd want to use custom … Continue reading

$ vs $()

Until now, we've been dealing entirely with methods that are called on a jQuery object. For example: 1 $( "h1" ).remove(); Most jQuery methods are called on jQuery objects as shown above; these methods are said to be part of the $.fn namespace, or the "jQuery prototype," and are best thought of as jQuery object … Continue reading

Working with JSONP

The advent of JSONP — essentially a consensual cross-site scripting hack — has opened the door to powerful mashups of content. Many prominent sites provide JSONP services, allowing you access to their content via a predefined API. A particularly great source of JSONP-formatted data is the Yahoo! Query Language, which we'll use in the following … Continue reading

Plugins

A jQuery plugin is simply a new method that we use to extend jQuery's prototype object. By extending the prototype object you enable all jQuery objects to inherit any methods that you add. As established, whenever you call jQuery() you're creating a new jQuery object, with all of jQuery's methods inherited. The idea of a … Continue reading