/ 27.feb.2009
Ett open source JavaScript bibliotek som förenklar interaktionen mellan HTML och JavaScript.
jQuery är byggt runt CSS selektorer (CSS 1, 2 och 3) och sedan en tid använder man motorn Sizzler för att hantera de tunga lyften.
jQuery fyllde tre år den 14:e januari, version 1.3 släpptes samma dag.
$('div').addClass('special'); |
Den senaste versionen (1.3.2) släpptes den 20:e februari och den innehåller ett flertal prestandaförbättringar:
jQuery är tänkt att byggas ut med hjälp av plugins.
Att lägga på nya metoder:
jQuery('div').hideRemove(); |
Trivialt att implementera:
1 2 3 4 5 |
jQuery.fn.hideRemove = function(speed) { return this.hide(speed, function() { jQuery(this).remove(); }); }; |
Exempel på plugins:
Mer information http://plugins.jquery.com/
Till skillnad från många andra JavaScript ramverk så är utvecklarna av jQuery måna om att inte skräpa ner i det globala namnutrymmet. Man behöver inte ens exponera $-metoden om man inte vill.
1 2 3 4 5 |
jQuery.noConflict();
jQuery(document).ready(function(){
// Din egen kod
}); |
Man kan dock fortfarande använda sig av $ om man skickar in jQuery i en anonym metod.
(function($) { /* Kod som använder sig av $ */ })(jQuery) |
Mer information http://docs.jquery.com/Using_jQuery_with_Other_Libraries
1 2 3 4 5 |
jQuery('div#intro h2'); jQuery('div.section > p'); jQuery('input:radio'); $('div#intro h2'); |
$('div.section'); // returnerar en kollektion |
1 2 3 4 5 |
$('div.section').size(); // Antal element som matchades av selektorn $('div.section').each(function(div) { // Manipulation av div elementet }); |
De flesta jQuery metoderna opererar på alla matchade element i en kollektion.
1 2 3 4 |
$('div.section').addClass('highlighted'); $('img.photo').attr('src', '/default.png'); $('a.foo').html('<em>Click me now!</em>'); $('p:odd').css('background-color', '#ccc'); |
Några metoder returnerar värdet på det först matchade elementet.
1 2 3 |
var height = $('div#intro').height(); var src = $('img.photo').attr('src'); var lastP = $('p:last').html(); |
jQuery tillhandahåller förbättrade metoder för att traversera DOM:en.
1 2 3 4 5 |
$('div.section').next(); $('div.section').prev(); $('div.section').prev('a'); $('div.section').parent(); $('div.section').parents(); |
jQuery tillhandahåller metoder för att tilldela event handlers.
1 2 3 4 |
$('a').click(function(ev) { $(this).css({backgroundColor:'orange'}); ev.preventDefault(); }); |
1 2 3 4 5 |
$(document).ready(function() { alert('The DOM is ready!'); }); $(function() { alert('This is a shortcut') }); |
Mer information http://en.wikipedia.org/wiki/Unobtrusive_JavaScript
Alla jQuery metoder returnerar ett nytt jQuery objekt, detta gör att man kan kedja ihop metoderna efter varandra.
$('h1').fadeOut().addClass('highlight').fadeIn(); |
jQuery har bra stöd för Ajax och Ajax-liknande funktionalitet som JSONP.
$('div#intro').load('/some/file.html'); |
Några mer avancerade metoder:
1 2 3 4 |
$.get(url, params, callback); $.post(url, params, callback); $.getJSON(url, params, callback); $.getScript(url, callback); |
Microsoft har beslutat att skeppa stöd för jQuery i kommande versioner av Visual Studio. Detta inkluderar officiellt stöd för jQuery Intellisense.
Nokia har meddelat att de kommer att använda jQuery i sin WebKit-baserade Web Run-Time
Mer information http://blog.jquery.com/2008/09/28/jquery-microsoft-nokia/
Google tillhandahåller ett CDN för ett flertal olika ramverk, jQuery är ett av dem.
Mer information http://code.google.com/apis/ajaxlibs/
API Dokumentationen för jQuery hittar man på http://api.jquery.com/ där man även kan installera en AIR-version.
John Resig’s presentation Learning jQuery @ MIT
Temat heter micro och är gjort av seaofclouds.
Det drivs med Mephisto under Ruby on Rails