jquery in 15 minutes

14
jQuery in 15 minutes Torchbox, 7th August 2007

Upload: simon-willison

Post on 17-May-2015

326.940 views

Category:

Technology


3 download

DESCRIPTION

A short introduction to jQuery.

TRANSCRIPT

Page 1: jQuery in 15 minutes

jQuery in 15 minutesTorchbox, 7th August 2007

Page 2: jQuery in 15 minutes

What makes jQuery interesting?

• Built around CSS selectors

• Well behaved

• Doesn’t hijack your global namespace

• Plays well with other libraries

• API designed with conciseness and convenience as the driving factors

Page 3: jQuery in 15 minutes

The jQuery() function

jQuery('div#intro h2')

jQuery('div.section > p')

jQuery('input:radio')

$('div#intro h2')

Page 4: jQuery in 15 minutes

jQuery collections

• $('div.section') returns a jQuery collection

• You can call methods on it:

$('div.section').size() = no. of matched elements

$('div.section').each(function(div) {

// Manipulate the div

}

Page 5: jQuery in 15 minutes

Manipulating collections

• Most jQuery methods operate on all of the matched elements in the collection

$('div.section').addClass('highlighted')

$('img.photo').attr('src', '/default.png');

$('a.foo').html('<em>Click me now!</em>');

$('p:odd').css('background-color', '#ccc');

Page 6: jQuery in 15 minutes

Grabbing values

• Some methods return results from the first matched element

var height = $('div#intro').height();

var src = $('img.photo').attr('src');

var lastP = $('p:last').html()

Page 7: jQuery in 15 minutes

Traversing the DOM

• jQuery provides enhanced methods for traversing the DOM

$('div.section').next()

$('div.section').prev()

$('div.section').prev('a')

$('div.section').parent()

$('div.section').parents()

Page 8: jQuery in 15 minutes

Handling events

• jQuery provides methods for assigning event handlers to elements in a cross-browser way

$('a').click(function(ev) {

$(this).css({backgroundColor: 'orange'});

ev.preventDefault();

});

Page 9: jQuery in 15 minutes

Going unobtrusive

$(document).ready(function() {

alert('The DOM is ready!');

});

$(function() { alert('This is a shortcut') });

Page 10: jQuery in 15 minutes

Chaining

• Most jQuery methods return another jQuery object - often one representing the same collection. This means you can chain methods together:

$('div.section').hide().addClass('gone');

Page 11: jQuery in 15 minutes

Crazy chaining$('form#login') // hide all the labels inside the form with the 'optional' class .find('label.optional').hide().end()

// add a red border to any password fields in the form .find('input:password').css('border', '1px solid red').end()

// add a submit handler to the form .submit(function(){ return confirm('Are you sure you want to submit?'); });

From http://www.ibm.com/developerworks/library/x-ajaxjquery.html

Page 12: jQuery in 15 minutes

Ajax

• jQuery has excellent support for Ajax

$('div#intro').load('/some/file.html');

• More advanced methods include:

$.get(url, params, callback)

$.post(url, params, callback)

$.getJSON(url, params, callback)

$.getScript(url, callback)

Page 13: jQuery in 15 minutes

Plugins

• jQuery is extensible through plugins, which can add new methods to the jQuery object

• Form: better form manipulation

• Dimensions: lots of browser measurements

• Interface: fancy effects, accordions

• UI: drag and drop, and more

Page 14: jQuery in 15 minutes

Further reading

• http://jquery.com/ - official site

• http://visualjquery.com/ - useful API reference