1. Introduzione a jQuery
Negli ultimi anni, con l'avvento del web 2.0, con la crescete necessità
di avere all'interno delle proprie pagine web effetti grafici
spettacolari (senza dover necessariamente ricorrere a Flash) e
soprattutto con il diffondersi delle tecniche di sviluppo legate ad
AJAX,
sono nate nuove soluzioni di scripting che sfruttano la potenza di
Javascript per far fronte a tali necessità.
In questi anni,
quindi, abbiamo assistito alla nascita di diversi framework, tra
cui uno dei più importanti è sicuramente jQuery.
Cos'è un framework?
Per chi non lo sapesse, un framework non è altro che un insieme di metodi e proprietà
grazie ai quali lo sviluppatore può creare
applicativi in grado di compiere operazioni complesse in modo più
semplice e scrivendo meno codice.
Tutto questo diviene possibile grazie ad una serie di operazioni pre-costituite
e ad una serie di "scorciatoie" che consentono di ridurre
notevolmente la quantità di codice che dovrà essere scritta dallo
sviluppatore.
jQuery, ovviamente, consente di fare tutto questo e molto altro!
Grazie a jQuery, infatti, potremo creare con una certa facilità delle
Rich Internet Application (RIA),
ossia applicazioni web caratterizzate da
un elevato grado di interattività e velocità.
jQuery: cenni storici
La prima versione del framework jQuery risale al 2006
ed è frutto del lavoro dello svluppatore John Resign.
Questo framework nasce, originariamente, nella scia di Prototype,
uno dei primi framework per lo sviluppo di applicazioni RIA.
Rispetto a quest'ultimo, tuttavia, jQuery risulta molto più semplice e flessibile,
fattori che hanno contribuito all'enorme successo di questo framework che in breve tempo
è diventato il più utilizzato e diffuso tra i webmaster di tutto il mondo.
Caratteristiche di jQuery
Tra i punti di forza di jQuery è necessario segnalare la sua elevata
compatibilità con praticamente tutti i browser in circolazione
(jQuery è completamente cross-browsser!)
e la sua capacità di lavorare in simultanea con altre librerie senza creare conflitti.
Il motto di jQuery è "write less, do more"
che, come si intuisce, sottolinea in modo molto diretto sia la semplicità che la potenza di
questo framework.
Le funzionalità fornite, che andremo a vedere in questa guida, vanno V
dalla manipolazione dei CSS alla selezione di elementi del DOM,
dalla personalizzazione degli eventi generati dall'utente alla creazione di chiamate AJAX,
senza tralasciare i sopracitati effetti grafici.
Un altro aspetto importante per gli utilizzatori di jQuery è
l'opportununità di utilizzare i numerosi plugin
messi a disposizione dalla comunità e scaricabili all'indirizzo plugins.jquery.com.
Il framework è in continuo aggiornamento, di passo in passo con i nuovi
motori javascript dei browser.
Per prima cosa scaricare l'ultima versione del framework dal
sito ufficiale. Una
volta scaricata la libreria sarà necessario includerla all'interno della
nostra pagina web:
<script type="text/javascript" src="jquery.js"></script>
In alternativa è possibile, senza scaricare il package, includere un riferimento alla libreria hostata in remoto sui siti preposti.
2. La funzione jQuery()
La funzione principale utilizzata in jQuery è, neanche a dirlo,
jQuery().
Per non smentire quanto enunciato dal motto stesso del framework
riguardo alla sinteticità delle funzioni, è presente un suo alias:
$()
(il simbolo del dollaro è stato scelto per mantenere una certa uniformità con il framework Prototype).
Le due funzioni si equivalgono e per semplicità d'ora in poi
nei nostri esempi utilizzeremo sempre $(),
piuttosto che l'espressione estesa.
var a = jQuery("a"); //seleziono tutti i link tramite la funzione jQuery() var b = $("a"); // seleziono tutti i link tramite la funzione $()
Selezionare un elemento della pagina mediante ID
Come dicevamo jQuery permette di ridurre sensibilmente il codice
scritto.
Una delle necessità più frequenti per i programmatori Javascript
consiste nel recuperare un elemento all'interno del DOM tramite
identificatore ID.
Vediamo come avverrebbe questo con Javascript e confrontiamolo con
jQuery:
document.getElementById("id_ele"); //selezione elemento con id=id_ele $("#id_ele"); //stessa cosa con jQueryCome vedete il codice che si è dovuto scrivere si è ridotto sensibilmente.
Concatenare il codice
Un altro punto a favore di questo framework è la possibilità di concatenare codice
(cd. esecuzione a catena),
funzionalità permessa dal fatto che quasi tutte i metodi utilizzati da jQuery
ritornano l'oggetto dal quale sono stati chiamati.
Oltre che alla riduzione di righe scritte, questo comporta anche una
migliore lettura del codice scritto, cosa di non poca rilevanza se chi
legge non è chi ha scritto il sorgente.
La concatenazione può essere effettuata mediante il punto (.) e mettendo
il punto e virgola (;) solamente al metodo finale.
Facciamo un esempio: proviamo a selezionare un link tramite il suo ID ed
effettuiamo un po' di operazioni concatenando diversi metodi.
$("a#id_link").css("color","red").bind("click", evento_click).show("1200");Che dire? jQuery è molto più sintetico e fa risparmiare parecchio codice e tempo.
Aggiungere elementi al DOM
Un'altra interessante funzionalità offerta da jQuery è quella di poter aggiungere con facilità degli elementi al DOM.
Come parametro alla funzione $() viene passato del codice HTML, con tag espressi sia in forma aperta che in forma chiusa. Come al solito vediamo un esempio chiarificatore:
var blocco_da_inserire=$("<div><p>Mr Webmaster</p></div>");Per aggiungere l'elemento appena creato alla nostra pagina sarà sufficiente "appenderlo" nel punto desiderato:
blocco_da_inserire.appendTo("#contenitore");
3. Evitare conflitti con altre librerie
Nella creazione del nostro sito web potrebbe essere necessario utilizzare diverse librerie, magari perchè una offre dei vantaggi che l'altra non offre o più semplicemente perchè troviamo un plugin ben fatto che utilizza quella libreria piuttosto che un'altra.Con jQuery il problema nasce soprattutto dal fatto che molte librerie utilizzano il simbolo del dollaro come funzione o come variabile. Per questo motivo jQuery mette a disposizione la funzione noConflict() la quale esclude l'utilizzo del dollaro per jQuery "liberandolo" per altre librerie. In sostanza jQuery "rinuncia" al suo alias $().
Il sistema che viene utilizzato è quello di non utilizzare $() come alias, ma di scrivere sempre jQuery(). Vediamo un esempio:
<script>
jQuery.noConflict();
// Usa jQuery con jQuery(...)
jQuery(document).ready(function(){
jQuery("#foto").show("slow");
});
</script>
Assicurarsi che la pagina sia pronta
Un elemento può essere manipolato solo quando è già stato caricato nel DOM.Normalmente, non c'è bisogno di attendere che tutta la pagina sia completamente caricata
(per esempio che tutte le immagini siano state caricate),
a volte basta solamente che sia pronto il DOM.
un evento incorporato che esegue l'operazione appena possibile
senza attendere che tutta la pagina sia stata caricata.
Per utilizzare questo metodo esistono più sintassi tra loro equivalenti
La più utilizzata, anche se la meno prolissa, è la seguente:
$(document).ready(function() {
$("p.class1").css("background-color","yellow");
alert('DOM caricato');
// funzioni jQuery sicuramente eseguite
});