Anche se la libreria più conosciuta e utilizzata fino a poco tempo fà era Prototype, c’è una nuova libreria chiamata jQuery, che include molte delle idee di Prototype e aggiunge molte altre nuove idee per derivare una libreria spettacolare: molto piccola, veloce, leggera e con migliaia di utenze.
Le applicazioni web sono sempre più complesse, giacché incorporano nuovi effetti visivi e interazioni dinamiche (Ajax, auto-completamento, drag & drop, elementi che appaiono/scompaiono, animazioni, ecc).
Allo stesso tempo, lo sviluppo di applicazioni web avanzate sta diventando sempre più complicato, dal momento che deve funzionare correttamente in almeno 5 diversi browser (Internet Explorer 6 e 7, Firefox, Opera e Safari) i tempi di sviluppo si riduce per la continua necessità di includere sviluppi dell’applicazione.
Per queste ragioni è indispensabile utilizzare librerie JavaScript per semplificare lo sviluppo e che consentono di creare applicazioni compatibili con tutti i browser.
<script type="text/javascript" src="jquery.js"></script>
Una delle istruzioni più utilizzate in applicazioni JavaScript è la seguente:
window.onload = function() { ... }
$(document).ready( function() { ... } );
D’altra parte, la funzione
getElementById() è probabilmente la più comunemente utilizzata nello sviluppo di applicazioni Web, permettendo selezionare il valore del suo attributo “id”. Inoltre, ci sono altre due funzioni correlate: getElementsByTagName() e getElementsByName(). jQuery include la funzione $() come alternativa più veloce e più completa per selezionare qualsiasi elemento della pagina:Con JavaScript
// Seleziona un elemento
document.getElementById("mioParragrafo");
// Selezionare tutti i liks
document.getElementsByTagName("a");
// Seleziona tutto quello di prima
?
// Seleziona mediante la classe CSS
?
// Seleziona un elemento
$("#mioParragrafo");
// Seleziona tutti i liks
$("a");
// Seleziona tutto quello di prima
$("#mioParragrafo, a");
// Seleziona mediante la classe CSS
$(".miaClasse");
document.getElementById() e il complesso codice JavaScript. jQuery utilizza il meglio di CSS1, CSS2, CSS3 e di XPath per selezionare facilmente qualsiasi elemento della pagina senza saturare il codice XHTML con gli attributi “id”. Esempi:
Le varie opzioni
// Seleziona tutti i paragrafi nella pagina
// che hanno almeno un link
$("p[a]");
// Seleziona tutti i "div" che non sono nascosti
$("div:visible");
// Seleziona tutti i radio options che sono state selezionate
$("input[@type=radio][@checked]");
// Seleziona più elementi attraverso i suoi "id"
// e le sue "class" (restituisce un array)
$("p.importante, div#menu, span#introduccion p.especial a");
:nth-child(n), :empty, :not, :disabled. Per i programmatori abituati a lavorare con XML, jQuery permette di usare anche l’XPath per la selezione di elementi, come per esempio:Con XPath
// Seleziona tutti i paragrafi nella pagina
$("/html/body//p");
// Seleziona tutti i links i cui
// attributi "rel" sia uguale a "nofollow"
$("//a[@ref='nofollow']");
Nel DOM
// Seleziona tutti gli elementi pari di una lista
// (":odd" seleziona i dispari)
$("ul#menu li:even"):
// Seleziona i primi 4 paragrafi della pagina
$("p:lt(4)");
// Seleziona tutti i links contenenti il testo "clicca qui"
$("a:contains('clicca qui')")
ready() visto sopra, jQuery ha diverse funzioni legate alla gestione degli eventi. Il metodo bind(), per esempio, può associare un numero illimitato di eventi ad un singolo elemento:Il metodo bind()
// Facendo clic su un paragrafo della pagina,
// mostra un alert() con il suo contenuto
$("p").bind("click", function() {
alert( $(this).text() );
});
Asocia funzione all'evento
// Esegue l'evento "onclick" su ogni paragrafo della pagina
$("p").click();
// Asocia una funzione all'evento "onclick"
// su ogni paragrafo della pagina
$("p").click(function() {
alert( $(this).text() );
});
focus(), blur(), keyup(), mouseover(), mouseup(), resize(), submit(), ecc.Inoltre, jQuery aggiunge un evento che non esiste in JavaScript ed è veramente utile per molte applicazioni:
toggle(). A questo metodo vengono passate due funzioni, le cui esecuzioni si alternano in funzione delle volte che si fa clic sull’elemento.La prima volta che si fa clic sull’elemento (e tutte le volte dispari), si esegue la prima funzione e la seconda volta che si clicca sull’elemento (e tutte le volte pari) esegue la seconda funzione:
Il metodo toggle()
$("p").toggle(function(){
alert("Mi sono appena attivato");
},function(){
alert("Mi sono disattivato");
});
Interazioni comuni in Ajax
// Carica il contenuto di una pagina HTML in un elemento
$("div#notizie").load("notizie.html");
// Scarica uno script dal server e lo esegue
$.getScript("/percorso/fino/a/mioScript.js");
// Richiesta GET al server con parametri e funzione di risposta
// La richiesta POST es la stessa, cambiando $.get per $.post
$.get("/percorso/fino/allo/scriptDelServer.php",
{idProdotto: "AX00342", quantita: "3"},
function(data){
alert("Si è aggiunto al carrello: " + data);
}
);
Opzioni di durata di ogni effetto
$("p").hide(); // Nasconde un elemento
$("p").show(); // Mostra un elemento
$("p").toggle(); // Se era nascosto, lo mostra;
// se era visibile, lo nasconde
$("p").show("slow"); // Mostra l'elemento con una
// animazione leggera
$("p").slideToggle("fast"); // Dispiega/nasconde l'elemento
// con un'animazione veloce
$("p").fadeOut(); // L'elemento sparisce
// con una fusione leggera
// Ottiene il valore della proprietà "color" del CSS
// del primo paragrafo della pagina
$("p").css("color");
// Imposta il valore della proprietà "color" del CSS
$("p").css("color","red");
// Imposta diverse proprietà del CSS su un elemento
$("p").css({color:"red",background:"blue",font-weight:"bold"});
// Nasconde tutti gli elementi in un form
$(mioForm.elements).hide();
// Restituisce "true" se il browser è una qualche
// versione di Internet Explorer
$.browser.msie
// Restituisce "true" se il browser è una qualche
// versione di Safari
$.browser.safari
// Ottiene o imposta il valore del elemento "innerHTML"
$("#contenuti").html();
$("#contenuti").html("<h1>Contenuti</h1>Caricando...");
// Aggiunge la classe CSS a tutti gli elementi
// o le rimuove se già era impostato
$("p").toggleClass("selezionato");
Questo articolo mostra solo una frazione delle possibilità dell’eccellente libreria jQuery. Con jQuery, è possibile fare molto di più e molto meglio scrivendo meno codice JavaScript e anche di avere la garanzia assoluta che le applicazioni funzionano altrettanto bene su qualsiasi browser.

Ancora nessun commento