jQuery
jQuery è una libreria JavaScript per applicazioni web. Nasce con l'obiettivo di semplificare la selezione, la manipolazione, la gestione degli eventi e l'animazione di elementi DOM in pagine HTML, nonché implementare funzionalità AJAX.
jQuery software | |
---|---|
![]() | |
Genere | Libreria software (non in lista) |
Sviluppatore | John Resig |
Data prima versione | gennaio 2006 |
Ultima versione | 3.7.1 (28 agosto 2023) |
Ultima beta | 4.0.0-beta2 (17 luglio 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | JavaScript |
Licenza | GNU GPL, Licenza MIT[1] (licenza libera) |
Sito web | jquery.com |
«write less, do more.»
«scrivi di meno, fai di più.»
È un software libero, distribuito sotto i termini della Licenza MIT.[1]
Sviluppo
Pubblicato per la prima volta nel gennaio 2006 da John Resig, è un progetto tuttora attivo e in evoluzione, gestito da un gruppo di sviluppatori guidato da Dave Methvin. Attualmente, anche Microsoft e Nokia forniscono di serie jQuery sulle proprie piattaforme[2]. Microsoft lo fornisce con le più recenti versioni di Visual Studio per semplificare lo sviluppo di pagine ASP.NET AJAX e ASP.NET MVC, mentre Nokia le ha integrate nel proprio widget di runtime web.
API
Il framework fornisce metodi e funzioni per gestire al meglio aspetti grafici e strutturali come posizione di elementi, effetto di click su immagini, manipolazione del Document Object Model e altro ancora, mantenendo la compatibilità tra browser diversi e standardizzando gli oggetti messi a disposizione dall'interprete JavaScript del browser.
Core
Il core di jQuery fornisce:
- I costruttori per l'utilizzo della libreria stessa
- Per ottenere elementi tramite un selettore (vedere sotto)
- Per ottenere un elemento referenziandolo come parametro
- Per creare ex novo un elemento partendo da codice HTML grezzo
- I metodi e le proprietà per accedere agli elementi contenuti in un oggetto jQuery
- Per conoscere il numero di elementi (funzione size() oppure proprietà length)
- Per iterare ogni elemento (funzione each())
- Per conoscere il selettore utilizzato o l'elemento DOM referenziato (proprietà selector o context)
- Per ottenere e manipolare elementi nativi (funzioni get() e index())
- I metodi per creare e utilizzare liste e code (di oggetti e funzioni)
- I metodi per estendere il framework mediante plugin (funzione extend() e fn.extend())
- I metodi per eseguire animazioni mediante le funzioni show(), hide() e animate()
Selettori
I selettori sono gli strumenti utilizzati per ottenere l'accesso agli elementi HTML della pagina, utilizzando la stessa sintassi dei selettori Cascading Style Sheet, ovvero:
- Per selezionare un elemento in base al suo id (#immagine_24)
- Per selezionare uno o più elementi in base alla classe (.thumb oppure div.modale oppure .class1.subclass)
- Per selezionare in modo gerarchico, mediante l'utilizzo di parole chiave come ancestor, sibling, prev e altre
- Per selezionare in base a pseudo-classi (:first, :last, :not, etc)
- Per selezionare in base ad attributi o contenuti (:contain, :has, :hidden, [type="text"], etc)
Attributi
Gli attributi sono ottenuti o modificati in maniera diversa a seconda del browser; jQuery aiuta lo sviluppatore offrendo un'unica funzione di frontend valida sia come getter (ottenere un valore), sia come setter (impostare un valore), a seconda che sia specificato o no un parametro:
- Metodo per gli attributi generici (attr())
- Metodi per le classi
- Per conoscere se un elemento appartiene ad una specifica classe (hasClass())
- Per impostare o rimuovere una classe (addClass(), removeClass() e lo switch toggleClass())
- Metodi per il contenuto
- Per il codice HTML, come la proprietà innerHTML (html())
- Per il contenuto testuale (text())
- Per il valore, solitamente per i campi di un form, che siano campi testuali, campi multiriga, liste dropdown o checkbox (val())
DOM Traversing
Per risalire a elementi padre, figli, per i nodi foglia o per elementi successivi, il framework propone numerosi metodi e funzioni per attraversare e scorrere il DOM del documento.
Manipolazione
La manipolazione del DOM è semplificata da numerosi metodi:
- Per aggiungere e rimuovere elementi alla pagina, o in una posizione specifica
- Per sostituire elementi, o per circondarli con del nuovo contenuto
- Per eliminare tutti gli elementi contenuti in un certo nodo, o per copiarli
CSS
Per controllare lo stile degli elementi, in maniera semplificata e standardizzata. Sono forniti i metodi:
- Per cambiare, rimuovere o aggiungere proprietà grafiche di tutti gli elementi selezionati
- Per ottenere e sostituire velocemente proprietà solitamente difficili da manipolare
- Lo scroll di pagina o di un elemento
- Le dimensioni (height() e width())
- Le dimensioni interne (escludendo quindi il margine)
- L'offset rispetto ai bordi
Eventi
Il framework riconosce gli oggetti di tipo event e provvede a modificare le loro proprietà rendendoli uniformi, semplificando la loro gestione, la loro propagazione, e fornendo un'utile modalità per impedire al browser di continuare l'esecuzione (ad esempio sulla onclick di un link). L'assegnazione di eventi quali click, load, mouseover è gestita in maniera efficace e non invadente.
Effetti
Gli effetti messi a disposizione dal framework, servono a manipolare la visibilità degli elementi selezionati. È possibile mostrarli o nasconderli con vari effetti, tra i quali:
- Effetto fading, la dissolvenza in entrata o uscita
- Effetto sliding, l'effetto scivolata
- Nascondimento o visualizzazione piatta
È possibile definire facilmente effetti personalizzati specificando la proprietà CSS da manipolare (per esempio: altezza, bordo e altro), come è pure possibile specificare la durata dell'effetto e una funzione di callback da eseguire dopo l'animazione.
AJAX
La gestione delle chiamate asincrone è davvero semplificata, e sono fornite le funzioni:
- Per caricare contenuti dinamicamente
- Funzione di caricamento semplice
- Funzione di caricamento di codice HTML con inserimento automatico
- Per eseguire richieste asincrone
- Con metodo GET
- Con metodo POST
- Per l'interazione con JavaScript
- Funzione per caricare un oggetto JSON
- Funzione per caricare un file JavaScript remoto ed eseguirlo automaticamente
Anche gli eventi AJAX sono gestibili in modo semplificato, per il completamento dei form di immissione, la gestione degli errori e l'invio dei dati.
Utilità
Il framework fornisce scorciatoie per gestire vettori, per la manipolazione di stringhe e per il riconoscimento di browser e oggetti/funzioni.
Caratteristiche
L'oggetto principale, di nome jQuery, è genericamente utilizzato tramite il suo alias, il carattere $, per mantenere uniformità con la libreria Prototype.
// Tutti i link
var l1 = jQuery("a");
var l2 = $("a");
// l1 e l2 sono oggetti diversi
// ma il loro contenuto è identico
I selettori, in jQuery, utilizzano la sintassi dei selettori css; sono quindi concatenabili e molto precisi nel restituire gli elementi voluti.
// Ritorna tutte le immagini di classe class1 e/o class3
$("img.class1,img.class3");
Concatenazione del codice (chainability); quasi ogni funzione, restituisce lo stesso oggetto jQuery dalla quale è stata chiamata. Grazie a questo, le righe di codice si riducono sensibilmente.
var links = $("a");
links.css( "color", "red" );
links.bind( "click", myFunctionPointer );
links.show( "1000" );
links.css( "width", "150px" );
Può essere riscritta come segue
$("a")
.css({ color : "red", width : "150px" })
.bind( "click", myFunctionPointer )
.show( "1000" );
La libreria è compatibile con altri framework quali Prototype, MooTools, o YUI, e può essere pertanto utilizzata assieme ad esse.
Inoltre, sono disponibili molti plugin, tra i quali è necessario citare quello ufficiale, jQueryUI (user interface), che fornisce un'accattivante interfaccia grafica, includendo fogli di stile, finestre modali con ridimensionamento e traslazione, calendari e barre di scorrimento.
Critiche
Diversi articoli hanno fatto notare come, sebbene jQuery fosse una libreria indispensabile per svolgere determinati compiti con JavaScript, con le versioni più recenti di JavaScript e dei browser, le funzionalità di jQUery sono diventate funzionalità standard di JavaScript.[3]
C'è un sito che permette di visualizzare come usare JavaScript per sostituire ogni singola funzionalità di jQuery.[4]
C'è stato anche chi ha inventato un finto framework JavaScript, chiamato Vanilla JS, per promuovere l'uso di JavaScript senza framework.[5]
Note
- ^ a b (EN) License, su jQuery Foundation. URL consultato il 3 giugno 2015.
- ^ ScottGu's Blog - jQuery and Microsoft
- ^ (Now More Than Ever) You Might Not Need jQuery
- ^ You might not need jquery
- ^ Vanilla JS
Voci correlate
Altri progetti
- Wikibooks contiene testi o manuali su jQuery
- Wikimedia Commons contiene immagini o altri file su jQuery
Collegamenti esterni
- (EN) Sito web di jQuery mantenuto dal jQuery Project, su jquery.com.
- (EN) Sito del jQuery Project, su jquery.org.
- (EN) Sito dello sviluppatore John Resig, su ejohn.org.
- (EN) Sito web di documentazione completa della libreria, su docs.jquery.com.
- Sito web italiano sul framework con documentazione e forum, su jqueryitalia.org.
- (EN) jQuery vs MooTools - articolo tecnico di confronto con le librerie MooTools
Controllo di autorità | GND (DE) 7681087-2 |
---|