Ecco alcune delle maggiori novità presenti nella versione 1.1:
I selettori sono più veloci, da 10 a 20 volte rispetto alla versione 1.0.4;
La documentazione è stata interamente riorganizzata;
La complessità dell’API (l’interfaccia di programmazione) è stata ridotta del 47%;
moltissimi bug sono stati corretti;
sono state introdotte parecchie nuove funzionalità;
... e tutto ciò in un file che non arriva a 19 kb
Cambiamenti dell’API
Sono stati apportati notevoli cambiamenti all’API. Per questo motivo è probabile che uno script scritto per jQuery 1.0.4 non funzioni più correttamente con jQuery 1.1.
nth-child()
Un bug importante è stato corretto: secondo le specifiche CSS 3, il selettore :nth-child() deve contare gli elementi a partire da 1, e non da 0 come erroneamente avveniva in jQuery 1.0.x. La correzione di questo bug potrebbe creare errori nei vostri script.
Il seguente codice
// 1.0.x: Legge la prima colonna di una tabella
$("td:nth-child(0)")dovrà quindi essere scritto in questo modo:
// 1.1: Legge la prima colonna di una tabella
$("td:nth-child(1)").filter(matrice)
Altro cambiamento: il vecchio selettore .filter([".foo", ".bar"]) (che selezionava tutti gli elementi aventi la classe .foo O .bar) ora si scrive in maniera molto più semplice, separando i vari possibili valori con una virgola: .filter(".foo, .bar") ; la vecchia sintassi è stata eliminata.
Alcuni metodi sono stati ritirati
I metodi che seguono sono stati rinominati/riorganizzati; ecco come poter continuare ad utilizzarli:
| Vecchio (1.0.x) | Nuovo (1.1) |
|---|---|
.ancestors() |
.parents() |
.top() |
.css("top") |
.left() |
.css("left") |
.position() |
.css("position") |
.float() |
.css("float") |
.overflow() |
.css("overflow") |
.color() |
.css("color") |
.background() |
.css("background") |
.id() |
.attr("id") |
.title() |
.attr("title") |
.name() |
.attr("name") |
.href() |
.attr("href") |
.src() |
.attr("src") |
.rel() |
.attr("rel") |
.oneblur(fn) |
.one("blur",fn) |
.onefocus(fn) |
.one("focus",fn) |
.oneload(fn) |
.one("load",fn) |
.oneresize(fn) |
.one("resize",fn) |
.onescroll(fn) |
.one("scroll",fn) |
.oneunload(fn) |
.one("unload",fn) |
.oneclick(fn) |
.one("click",fn) |
.onedblclick(fn) |
.one("dblclick",fn) |
.onemousedown(fn) |
.one("mousedown",fn) |
.onemouseup(fn) |
.one("mouseup",fn) |
.onemousemove(fn) |
.one("mousemove",fn) |
.onemouseover(fn) |
.one("mouseover",fn) |
.onemouseout(fn) |
.one("mouseout",fn) |
.onechange(fn) |
.one("change",fn) |
.onereset(fn) |
.one("reset",fn) |
.oneselect(fn) |
.one("select",fn) |
.onesubmit(fn) |
.one("submit",fn) |
.onekeydown(fn) |
.one("keydown",fn) |
.onekeypress(fn) |
.one("keypress",fn) |
.onekeyup(fn) |
.one("keyup",fn) |
.oneerror(fn) |
.one("error",fn) |
.unblur(fn) |
.unbind("blur",fn) |
.unfocus(fn) |
.unbind("focus",fn) |
.unload(fn) |
.unbind("load",fn) |
.unresize(fn) |
.unbind("resize",fn) |
.unscroll(fn) |
.unbind("scroll",fn) |
.ununload(fn) |
.unbind("unload",fn) |
.unclick(fn) |
.unbind("click",fn) |
.undblclick(fn) |
.unbind("dblclick",fn) |
.unmousedown(fn) |
.unbind("mousedown",fn) |
.unmouseup(fn) |
.unbind("mouseup",fn) |
.unmousemove(fn) |
.unbind("mousemove",fn) |
.unmouseover(fn) |
.unbind("mouseover",fn) |
.unmouseout(fn) |
.unbind("mouseout",fn) |
.unchange(fn) |
.unbind("change",fn) |
.unreset(fn) |
.unbind("reset",fn) |
.unselect(fn) |
.unbind("select",fn) |
.unsubmit(fn) |
.unbind("submit",fn) |
.unkeydown(fn) |
.unbind("keydown",fn) |
.unkeypress(fn) |
.unbind("keypress",fn) |
.unkeyup(fn) |
.unbind("keyup",fn) |
.unerror(fn) |
.unbind("error",fn) |
Per fortuna, le funzioni eliminate figurano tra quelle più raramente utilizzate!
Da notare, contrariamente a quello che era stato annunciato inizialmente, le funzioni .width() e .height() non sono state eliminate.
Per ricercare queste funzioni all’interno dei vostri script, ecco l’espressione regolare che vi consentirà trovarle tutte:
ad esempio si può utilizzare nel seguente modo in linea di comando:
grep -E "espressione-regolare" `find . -name '*.js'`Il plugin compat
Per poter avvalersi dei miglioramenti di jQuery senza dover aggiornare tutti i vostri script (almeno in un primo tempo), potete aggiungere, subito dopo jquery.js e prima dei vostri script, il plugin di compatibilità 1.0 jquery-compat-1.0.js, che definisce le funzioni non più esistenti, e ripristina il vecchio comportamento di :nth-child(), incrementando di un’unità il valore passato.
Noi consigliamo in ogni caso di aggiornare rapidamente i vostri script a jQuery 1.1; non è poi così difficile, e ne vale la pena!
Ecco come utilizzare il plugin compat :
<html>
<head>
<script src="jquery-1.1.js"></script>
<script src="jquery.compat-1.0.js"></script>
<script>
$(document).ready(function(){
// Il vostro vecchio codice basato su jQuery 1.0.x
var id = $("div:nth-child(0)").id();
});
</script>
</head>
<body></body>
</html>Se avete delle domande, non esitate ad scrivere adoperando il modulo in basso.
