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.
