
GUIDE PER ASPIRANTI PROGRAMMATORI
Guida Jquery in italiano
Imparerai a manipolare il DOM in modo efficiente, selezionando e modificando gli elementi HTML sulla pagina. Sarai in grado di gestire gli eventi utente, come clic e hover, per rendere l’interazione web più dinamica. Imparerai anche a creare effetti e animazioni accattivanti per migliorare l’aspetto complessivo del sito.


Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
1
Introduzione a jQuery
1.1
Cos'è jQuery?
JQuery è una libreria JavaScript ampiamente utilizzata, progettata per semplificare la scrittura di script lato client in HTML. È stato rilasciato nel 2006 da John Resig e, da allora, è diventato uno degli strumenti più popolari nel mondo dello sviluppo web.
Caratteristiche principali di jQuery
Manipolazione del DOM: jQuery rende facile selezionare elementi DOM e manipolarli, consentendo agli sviluppatori di modificare facilmente il contenuto, lo stile e la struttura delle pagine web.
Gestione Eventi: Offre una sintassi semplice per agganciare funzioni di gestione degli eventi a vari elementi della pagina, come click, hover, e molti altri eventi.
Animazioni e Effetti: jQuery viene fornito con un insieme di effetti visivi e metodi per creare animazioni personalizzate, rendendo l'interfaccia utente più interattiva e accattivante.
Ajax: Semplifica molto l'uso di Ajax, permettendo il caricamento asincrono di dati da e verso un server, senza dover ricaricare l'intera pagina.
Compatibilità Cross-Browser: Risolve molte incompatibilità tra i diversi browser, assicurando che il codice funzioni in modo uniforme su tutti i principali browser.
Estendibilità: Attraverso plugin, gli sviluppatori possono estendere le funzionalità di jQuery per adattarle alle specifiche esigenze dei loro progetti.
Vantaggi di jQuery
Semplicità d'uso: Riduce la complessità del codice JavaScript puro, offrendo una sintassi più breve e più leggibile.
Risparmio di tempo: Automatizza molte funzioni comuni, riducendo il tempo di sviluppo.
Comunità forte: Essendo popolare, ha una grande comunità, con molte risorse, tutorial e supporto disponibili.
Svantaggi di jQuery
Performance: In alcune situazioni, può essere meno performante rispetto al linguaggio JavaScript nativo, soprattutto in applicazioni molto grandi o complesse.
Dipendenza: L'uso eccessivo di jQuery può portare ad una dipendenza eccessiva da questa libreria, limitando la comprensione e l'uso del JavaScript puro.
Dimensione: L'aggiunta della libreria può aumentare la dimensione totale di un'applicazione web, influenzando potenzialmente i tempi di caricamento.
Stato Attuale di jQuery
Con l'avanzare degli standard web e l'evoluzione di JavaScript e del linguaggio CSS, alcune funzionalità di jQuery sono diventate meno critiche. I moderni framework front-end come React, Angular, e Vue offrono alternative più potenti per la costruzione di interfacce utente dinamiche. Tuttavia, jQuery rimane ancora utilizzato in molti progetti esistenti e ha il suo posto in certi contesti di sviluppo web.
1.2
Storia ed evoluzione di jQuery
La storia e l'evoluzione di jQuery sono strettamente intrecciate con lo sviluppo del web moderno. Sin dal suo rilascio, jQuery ha avuto un impatto significativo nel campo dello sviluppo web.
Proviamo a ripercorrerne brevemente la storia.
Origini e sviluppo iniziale di jQuery
Lancio (2006): jQuery è stato creato da John Resig e rilasciato nel gennaio 2006 alla conferenza "BarCamp NYC". Era pensato come una libreria leggera per semplificare alcune operazioni JavaScript complesse.
Design e Filosofia: la filosofia di base di jQuery era "scrivi meno, fai di più", con l'obiettivo di semplificare il codice JavaScript. In particolare, si concentrava sulla manipolazione del DOM, la gestione degli eventi e le animazioni, offrendo una sintassi più semplice e concisa rispetto al linguaggio JavaScript puro.
Crescita e popolarità di jQuery
Accettazione della Comunità: jQuery è rapidamente diventato popolare nella comunità degli sviluppatori web, grazie alla sua semplicità e potenza. È stato adottato da grandi aziende e progetti, aiutando a stabilire la sua posizione come una delle principali librerie JavaScript.
Plug-in e Estensibilità: una parte significativa della crescita di jQuery è stata guidata dalla sua estensibilità. Gli sviluppatori hanno creato un'ampia gamma di plugin, estendendo le funzionalità di jQuery a specifiche esigenze.
Contributi dalla Comunità: con l'aumentare della popolarità, la comunità ha contribuito attivamente allo sviluppo di jQuery, migliorando la sua robustezza e versatilità.
Evoluzione e sfide di jQuery
Versioni Successive: nel corso degli anni, jQuery è stato aggiornato più volte, con l'aggiunta di nuove funzionalità e miglioramenti delle prestazioni.
Adattamento al Progresso del Web: mentre il web si evolveva, con l'introduzione di HTML5, CSS3, e miglioramenti in JavaScript (come ECMAScript 6), jQuery ha dovuto adattarsi a questi cambiamenti, pur mantenendo la compatibilità con le versioni precedenti.
Concorrenza con Framework Moderni: l'ascesa di framework e librerie moderne come React, Angular e Vue ha portato a una ridotta enfasi sull'uso di jQuery. Questi strumenti offrono approcci più robusti e scalabili per costruire applicazioni web, riducendo la necessità di dipendere da jQuery per alcune funzionalità.
1.3
Perché imparare jQuery
Imparare jQuery oggi può ancora offrire diversi vantaggi, nonostante la presenza di framework e librerie JavaScript più recenti e avanzati. Ecco alcuni motivi validi per considerare l'apprendimento di jQuery:
Semplicità e Facilità di Uso: jQuery semplifica la scrittura di script lato client, rendendo il codice più leggibile e facile da scrivere. Per gli sviluppatori che iniziano con JavaScript, può essere un ottimo punto di partenza per familiarizzare con la manipolazione del DOM e altri concetti propri del linguaggio JavaScript.
Ampia Base di Codice Esistente: Ci sono ancora molti progetti e siti web esistenti che utilizzano jQuery. Avere competenze in jQuery è utile per la manutenzione, l'aggiornamento o la modifica di tali progetti.
Concetti Fondamentali di JavaScript: Anche se jQuery semplifica molte operazioni, impararlo può aiutare a comprendere meglio concetti JavaScript fondamentali, come event handling, callback, e Ajax.
Cross-Browser Compatibility: jQuery gestisce automaticamente molte delle incompatibilità tra diversi browser, il che può essere particolarmente utile per progetti che richiedono un'alta compatibilità cross-browser.
Comunità e Risorse: Una grande comunità di sviluppatori e un'abbondanza di risorse didattiche sono disponibili per jQuery, rendendo più facile l'apprendimento e la risoluzione dei problemi.
Punto di Partenza per l'Apprendimento di Framework Moderni: Imparare jQuery può essere un passo intermedio utile prima di passare a framework e librerie più complesse come React, Angular o Vue.
In conclusione, imparare jQuery può essere ancora vantaggioso, specialmente come strumento complementare nel toolkit di uno sviluppatore web, o come passo verso la comprensione più profonda dello sviluppo front end. Pronto a partire?
2
Configurazione e setup di jQuery
2.1
Come installare jQuery
L'installazione di jQuery nel tuo progetto web è un processo semplice e diretto, specialmente attraverso l'uso di un Content Delivery Network (CDN). Hai due opzioni principali per includere jQuery: scaricare il file JavaScript e inserirlo localmente nel tuo progetto, oppure fare riferimento direttamente alla versione ospitata sul CDN. Entrambe le opzioni sono efficaci, e la scelta dipende dalle specifiche esigenze e preferenze del tuo progetto.
Come installare jQuery in locale
Innanzitutto, al seguente link troveremo una panoramica delle ultime versioni di jQuery
In genere, si sceglie la versione non compressa (jquery-3.7.1.js) per lo sviluppo e il debug, dove la leggibilità del codice è essenziale. Quando il tuo sito web o applicazione è pronto per essere pubblicato, passa alla versione compressa (jquery-3.7.1.min.js) per migliorare le prestazioni di caricamento della pagina.
Passiamo, quindi, all’installazione del https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.7.1.js
Una volta aperto il link, verrà visualizzato il contenuto del file JavaScript di jQuery. Per scaricarlo, basta fare clic destro sulla pagina e scegliere l'opzione per salvare il file js sul tuo computer.
Il passo successivo è scaricare un editor di testo, che sarà essenziale per scrivere e modificare il tuo codice. Nel nostro esempio utilizziamo Sublime Text, ma ci sono molte altre ottime alternative disponibili. Con l'editor installato, sei ora pronto per iniziare il tuo viaggio nel mondo di jQuery.
A questo punto, mettiamo tutti i nostri file nella stessa folder, creiamo un file HTML con il seguente codice
<!DOCTYPE html>
<html>
<head>
<title>Test jQuery</title>
<!-- Inclusione locale di jQuery -->
<script src="jquery-3.7.1.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
alert("jQuery è stato caricato correttamente!");
});
</script>
</body>
</html>
Se aprendo il file HTML riceveremo questo alert, vorrà dire che l’esecuzione è andata a buon fine e il file HTML è in grado di leggere jQuery.
Come installare jQuery tramite CDN
Questo tipo di installazione di jQuery risulta più semplice della precedente: è sufficiente creare un file HTML, scrivere al suo interno questo codice indicando la versione jQuery che si preferisce ed eseguire il test avviando la pagina da browser.
<!DOCTYPE html>
<html>
<head>
<title>Test jQuery</title>
<!-- Inclusione di jQuery tramite CDN -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
alert("jQuery è stato caricato correttamente!");
});
</script>
</body>
</html>
Come sopra, se apparirà quel messaggio di alert, vorrà dire che jQuery funziona correttamente sulla tua macchina.
2.2
Struttura di base di uno script jQuery
jQuery, come abbiamo detto, è una potente libreria del linguaggio JavaScript utilizzata per semplificare e migliorare l'interattività e la manipolazione degli elementi HTML nelle pagine web. Comprendere la struttura di base di uno script jQuery è fondamentale per chiunque desideri iniziare a lavorare con questa libreria. In questo articolo, esamineremo gli elementi chiave che compongono uno script jQuery tipico.
Come includere jQuery nel nostro progetto
Per includere jQuery nel nostro progetto, facciamo esattamente come in precedenza:
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
La sintassi di base di jQuery
La sintassi di base di jQuery è costruita intorno a `$`, un alias per `jQuery`. Questo simbolo funge da punto di partenza per quasi tutte le operazioni jQuery. La sintassi generale è:
$(selettore).azione()
Selettore: identifica gli elementi HTML su cui si desidera operare. Può essere una classe, un ID, un tag HTML, o più complesse espressioni CSS.
Azione: rappresenta ciò che si desidera fare con gli elementi selezionati, come cambiarne lo stile, ascoltare un evento, animarli, ecc.
Il Document Ready Event in jQuery
Uno degli aspetti più importanti di jQuery è garantire che il codice venga eseguito solo dopo che il DOM (Document Object Model) è stato completamente caricato. Questo è possibile grazie all'evento `$(document).ready()`. Ad esempio:
$(document).ready(function() {
// Il tuo codice jQuery va qui
});
In jQuery, è anche comune utilizzare la forma abbreviata:
$(function() {
// Il tuo codice jQuery
});
Manipolazione del DOM in jQuery
La manipolazione del DOM è una delle cose per cui viene maggiormente utilizzato jQuery. Questa include cambiare, aggiungere o rimuovere elementi e modificare stili. Vediamo un esempio:
$(document).ready(function() {
$("#idElemento").text("Testo cambiato!");
$(".classeElemento").css("color", "blue");
});
Event Handling in jQuery
Gestire eventi come click, hover, o keypress è molto più semplice con jQuery. Vediamo un esempio di un gestore di eventi click:
$(document).ready(function() {
$("button").click(function() {
alert("Bottone cliccato!");
});
});
Animazioni ed effetti in jQuery
jQuery semplifica anche l'aggiunta di animazioni e effetti (come fade in, fade out, slide, ecc) Queste funzioni possono essere utilizzate per migliorare l'interfaccia utente. Ad esempio:
$(document).ready(function() {
$("#idElemento").fadeIn();
});
La chiave sta nel saper combinare selettori, azioni, e eventi per creare esperienze utente coinvolgenti e funzionali.
3
I selettori in jQuery
3.1
Selettori di base in jQuery
I selettori in jQuery sono basati sulla sintassi dei selettori CSS, ma estendono le loro capacità, permettendo una selezione e manipolazione degli elementi del DOM più potente e versatile. Possono essere usati per selezionare elementi in base al loro tag, classe, ID, attributi, posizione nel DOM e molto altro. Vediamo, a seguire, una lista dei selettori di base in jQuery.
Selettori di base in jQuery
In jQuery, i selettori di base sono utilizzati per identificare gli elementi HTML su cui si desidera operare. Vediamo quali sono:
Selettore per Tipo in jQuery
Il selettore per tipo in jQuery corrisponde a tutti gli elementi di un dato tipo.
Esempio: $("p") seleziona tutti i paragrafi nella pagina.
Selettore per Classe in jQuery
Il selettore per classe in jQuery seleziona tutti gli elementi che hanno una specifica classe.
Esempio: $(".classe-esempio") seleziona tutti gli elementi con la classe classe-esempio.
Selettore per ID in jQuery
Il selettore per ID in jQuery seleziona un singolo elemento con un ID specifico.
Esempio: $("#id-unico") seleziona l'elemento con l'ID id-unico.
I selettori di base qui mostrati forniscono un'ampia gamma di strumenti per identificare e manipolare singoli elementi HTML in base alle loro caratteristiche specifiche, come il tipo, la classe e l'ID.
Tuttavia, quando si lavora con documenti HTML complessi che contengono una struttura gerarchica di elementi, a diventare essenziale è un'altra tipologia di selettori: i selettori gerarchici; scopriamoli nel prossimo capitolo!
3.2
Selettori gerarchici in jQuery
I selettori gerarchici in jQuery consentono di selezionare elementi basandosi sulla loro relazione nella struttura del DOM, come gli elementi figli, discendenti, fratelli o genitori. Inoltre, i selettori gerarchici offrono un approccio più dinamico e flessibile alla manipolazione del DOM, consentendo agli sviluppatori, come accennavamo nello scorso capitolo, di creare selezioni più complesse, strutturate e sofisticate. Vediamo, a seguire, quali sono i selettori gerarchici in jQuery.
Selettore discendente in jQuery
Il selettore discendente in jQuery seleziona tutti gli elementi discendenti di un dato elemento
Esempio: $("div p") seleziona tutti i paragrafi (p) che si trovano all'interno di un <div>.
Selettore figlio diretto in jQuery
Il selettore figlio diretto in jQuery seleziona tutti gli elementi che sono figli diretti di un elemento specifico.
Esempio: $("ul > li") trova tutti gli elementi <li> che sono figli diretti di un <ul>.
Selettore di elementi adiacenti in jQuery
Il selettore di elementi adiacenti in jQuery seleziona tutti gli elementi adiacenti direttamente dopo un elemento specifico.
Esempio: $("#id-unico + p") seleziona il paragrafo immediatamente successivo all'elemento con l'ID id-unico.
Selettore di sibling generali in jQuery
Il Selettore di sibling generali in jQuery trova tutti i sibling (fratelli) di un elemento che condividono lo stesso genitore.
Esempio: $("#id-unico ~ div") seleziona tutti i <div> che sono sibling dell'elemento con l'ID id-unico.
Abbiamo esplorato in dettaglio i selettori gerarchici in jQuery, scoprendo come consentano di selezionare elementi in base alla loro relazione all'interno della struttura del DOM. Tuttavia, la nostra panoramica dei selettori in jQuery non finisce qui. Abbiamo appena iniziato a esplorare l'ampia gamma di possibilità offerte da questo potente strumento. Nel prossimo capitolo, approfondiremo ulteriormente la nostra comprensione dei selettori, esplorando i selettori per attributi.
3.3
Selezionare per attributi in jQuery
La selezione di elementi basata sugli attributi è una delle caratteristiche più potenti di jQuery, poiché permette di individuare elementi nel DOM in base a specifici attributi e loro valori.
Questo tipo di selezione è estremamente utile in una varietà di contesti, da formulari a elementi interattivi. In questa sede, esploreremo i diversi tipi di selettori di attributi in jQuery e come utilizzarli, fornendo esempi pratici per illustrare il loro uso.
NB. ricordiamo che la sintassi generale per selezionare tramite attributi in jQuery è la seguente:
$("[attributo='valore']")
Questo selettore troverà tutti gli elementi che hanno un attributo specifico con un determinato valore.
Ciò detto, ribadiamo che jQuery fornisce diversi modi per selezionare elementi basandosi sugli attributi; scopriamoli insieme!
Selettore esatto
Il selettore esatto in jQuery seleziona elementi che hanno un attributo con un valore esatto.
$("input[type='text']")
Questo esempio seleziona tutti gli input di tipo testo.
Selettore che contiene un valore
Questo selettore seleziona elementi il cui attributo contiene un certo valore.
$("[class*='test']")
Questo troverà tutti gli elementi che hanno una classe contenente la parola "test".
Selettore che inizia con un valore
Questo selettore seleziona elementi con attributi che iniziano con un valore specifico.
$("input[name^='user']")
Seleziona tutti gli input il cui nome inizia con "user".
Selettore che finisce con un valore
Questo selettore trova elementi con attributi che terminano con un certo valore.
$("[id$='icon']")
Seleziona tutti gli elementi con un ID che termina in "icon".
Selettore che seleziona elementi con un attributo specifico
Questo selettore, indipendentemente dal valore, seleziona elementi che hanno un determinato attributo.
$("[disabled]")
Questo esempio seleziona tutti gli elementi che sono disabilitati.
Come utilizzare i vari tipi di selettori di attributi in jQuery: esempio pratico
Ecco un esempio pratico che mostra come utilizzare i vari tipi di selettori di attributi in jQuery. Creeremo un semplice snippet di codice HTML con diversi elementi e poi applicheremo diversi selettori jQuery per manipolare questi elementi.
<!DOCTYPE html>
<html>
<head>
<title>Esempio Selettori di Attributi jQuery</title>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
<input type="text" name="username" placeholder="Nome utente">
<input type="text" name="useremail" placeholder="Email">
<input type="password" name="password" placeholder="Password">
<div id="alert-icon" class="icon round-test">Icona di avviso</div>
<button type="submit" disabled>Invia</button>
<script>
// Il tuo codice jQuery va qui
</script>
</body>
</html>
Il seguente codice jQuery verrà inserito all'interno del tag <script> alla fine del corpo del documento.
$(document).ready(function() {
// Selettore Esatto: Cambia il colore di bordo degli input di tipo testo
$("input[type='text']").css("border", "2px solid green");
// Selettore che Contiene un Valore: Aggiunge un bordo a tutti gli elementi con una classe che contiene 'test'
$("[class*='test']").css("border", "3px dashed red");
// Selettore che Inizia con un Valore: Aggiunge sfondo giallo a tutti gli input il cui nome inizia con 'user'
$("input[name^='user']").css("background-color", "yellow");
// Selettore che Finisce con un Valore: Aggiunge padding agli elementi con un ID che termina in 'icon'
$("[id$='icon']").css("padding", "10px");
// Selettore che Seleziona Elementi con un Attributo Specifico: Cambia il testo dei bottoni disabilitati
$("[disabled]").text("Non disponibile");
});
Descrizione del Codice
Selettore Esatto: Cambia il colore del bordo degli input di tipo testo in verde.
Selettore che Contiene un Valore: Aggiunge un bordo rosso tratteggiato a tutti gli elementi che hanno una classe contenente la parola "test".
Selettore che Inizia con un Valore: Applica uno sfondo giallo a tutti gli input il cui name inizia con "user".
Selettore che Finisce con un Valore: Aggiunge un padding di 10px a tutti gli elementi con un ID che termina in "icon".
Selettore che Seleziona Elementi con un Attributo Specifico: Cambia il testo dei bottoni disabilitati in "Non disponibile".
Risultato
3.4
Filtrare le selezioni in jQuery
JQuery non solo rende semplice selezionare elementi del DOM, ma fornisce anche potenti strumenti per filtrare queste selezioni. Questo permette agli sviluppatori di affinare ulteriormente le loro selezioni per manipolare solo gli elementi che soddisfano specifici criteri. Ma come filtrare le selezioni in jQuery? Vediamolo con esempi pratici.
Cos'è il filtraggio delle selezioni in jQuery?
Il filtraggio delle selezioni in jQuery si riferisce all'applicazione di criteri aggiuntivi a una selezione esistente per restringere l'insieme degli elementi manipolati. Questo è utile per selezionare elementi specifici all'interno di un gruppo più grande basandosi su posizione, stato, o altre proprietà.
Metodi comuni per filtrare selezioni in jQuery
jQuery offre diversi metodi per filtrare le selezioni:
.first() e .last(): Selezionano rispettivamente il primo o l'ultimo elemento in un insieme di elementi.
.eq(index): Seleziona un elemento in una posizione specifica, indicizzata da zero.
.filter(selector): Filtra l'insieme di elementi selezionati mantenendo solo quelli che corrispondono al selettore fornito.
.not(selector): Rimuove gli elementi che corrispondono al selettore specificato dall'insieme selezionato.
.has(selector): Seleziona tutti gli elementi che contengono almeno un elemento che corrisponde al selettore specificato.
.is(selector): Restituisce true se almeno uno degli elementi selezionati corrisponde al selettore.
Come filtrare selezioni in jQuery: esempi pratici
Vediamo, ora, come i metodi finora illustrati possono essere utilizzati in un contesto reale.
HTML di esempio
<div>
<p>Paragrafo 1</p>
<p class="active">Paragrafo 2</p>
<p>Paragrafo 3</p>
<p>Paragrafo 4</p>
</div>
Codice jQuery
$(document).ready(function() {
// Seleziona e evidenzia il primo paragrafo
$("p").first().css("color", "red");
// Seleziona e evidenzia l'ultimo paragrafo
$("p").last().css("color", "blue");
// Seleziona il terzo paragrafo (indice 2) e cambia il suo testo
$("p").eq(2).text("Questo è il terzo paragrafo");
// Filtra i paragrafi con la classe 'active'
$("p").filter(".active").css("font-weight", "bold");
// Esclude i paragrafi con la classe 'active'
$("p").not(".active").css("background-color", "lightgrey");
// Seleziona div che contengono paragrafi con classe 'active'
$("div").has("p.active").css("border", "2px solid green");
// Verifica se ci sono paragrafi attivi
if ($("p").is(".active")) {
console.log("Ci sono paragrafi attivi!");
}
});
4
Attributi, classi e metodi base
4.1
Metodi di base per la manipolazione del DOM in jQuery
Abbiamo detto che la manipolazione del Document Object Model (DOM) è una delle funzionalità fondamentali di jQuery, in quanto questa libreria semplifica il processo per modificare, aggiungere, rimuovere e interagire con gli elementi HTML di una pagina web. Ma quali sono, concretamente, i metodi di base forniti da jQuery per manipolare il DOM? Scopriamolo insieme, illustrando ciascun metodo con esempi pratici.
La manipolazione del DOM in jQuery è resa possibile grazie a una serie di metodi intuitivi che consentono di interagire con gli elementi della pagina in modo semplice e potente. Questi metodi possono essere suddivisi in diverse categorie:
modifica del contenuto: jQuery text(), jQuery html(), jQuery val()
gestione degli attributi: jQuery attr(), jQuery removeAttr(), jQuery addClass(), jQuery removeClass(), jQuery toggleClass()
manipolazione del CSS: jQuery css(), jQuery hide(), jQuery show(), jQuery toggle()
modifica della struttura del DOM: jQuery append(), jQuery prepend(), jQuery after(), jQuery before(), jQuery remove(), jQuery empty()
Metodi per modificare il contenuto in jQuery
jQuery .text(): Imposta o restituisce il testo di un elemento.
jQuery .html(): Imposta o restituisce l'HTML di un elemento.
jQuery .val(): Imposta o restituisce il valore di un campo di input.
Esempi
$("#paragrafo").text("Testo aggiornato"); // Aggiorna il testo di un paragrafo
$("#contenitore").html("<p>Nuovo paragrafo</p>"); // Inserisce HTML in un div
$("input").val("Nuovo valore"); // Cambia il valore di un campo di input
Metodi per gestire gli attributi in jQuery
jQuery .attr(): Imposta o restituisce il valore di un attributo.
jQuery .removeAttr(): Rimuove un attributo.
jQuery .addClass(), .removeClass(), .toggleClass(): Gestiscono le classi di un elemento.
Esempi
$("a").attr("href", "https://aulab.it/"); // Imposta l'attributo href di un link
$("img").removeAttr("alt"); // Rimuove l'attributo alt da un'immagine
$(".btn").addClass("active"); // Aggiunge una classe a un bottone
$(".btn").removeClass("active"); // Rimuove una classe a un bottone
$(".btn").toggleClass("active"); // Aggiunge o rimuove una classe (se presente o meno) a un bottone
Metodi per manipolare il CSS in jQuery
jQuery .css(): Imposta o restituisce il valore di una proprietà CSS.
jQuery .hide(), .show(), .toggle(): Gestiscono la visibilità di un elemento.
Esempi
$("#elemento").css("color", "red"); // Imposta il colore del testo di un elemento
$("#box").hide(); // Nasconde un elemento visibile
$("#box").show(); // Rende visibile un elemento nascosto
$(".menu").toggle(); // Alterna la visibilità di un elemento
Metodi per modificare la struttura del DOM in jQuery
jQuery .append(), .prepend(): Aggiungono contenuto alla fine o all'inizio di un elemento.
jQuery .after(), .before(): Inseriscono contenuto dopo o prima di un elemento.
jQuery .remove(), .empty() : Rimuovono elementi o il loro contenuto.
Esempi
$("#lista").append("<li>Nuovo elemento</li>"); // Aggiunge un elemento alla fine di una lista
$("h2").before("<h1>Titolo Principale</h1>"); // Inserisce un titolo prima di un altro
$(".temporaneo").remove(); // Rimuove elementi con classe 'temporaneo'
Questa era una panoramica dall’alto dei vari metodi delle categorie citate; nelle sezioni successive, proviamo ad esplorare queste categorie un po’ più nel dettaglio.
4.2
Manipolazione del contenuto e dei campi dei form in jQuery
La manipolazione del contenuto e dei campi dei form è una parte cruciale dello sviluppo web . JQuery fornisce un set di strumenti efficaci per gestire e modificare il contenuto degli elementi HTML, inclusi i campi di input nei form.
Manipolazione del contenuto in jQuery
jQuery offre diversi metodi per manipolare il contenuto degli elementi HTML.
Impostare o restituire testo puro: jQuery `.text()`
Il metodo .text in jQuery imposta o restituisce il testo puro di un elemento, escludendo qualsiasi markup HTML.
Ottenere Testo: `$("#element").text();`
Impostare Testo: `$("#element").text("Nuovo testo");`
Impostare o restituire html: jQuery `.html()`
Il metodo `.html()` in jQuery è simile a `.text()`, ma lavora, appunto, con il linguaggio 'HTML, permettendo di ottenere o impostare l'HTML interno di un elemento, con questo metodo infatti il testo verrà renderizzato come HTML e non come semplice testo, potremo quindi andare ad inserire degli elementi con dei tag HTML e il relativo CSS.
Ottenere HTML: `$("#element").html();`
Impostare HTML: `$("#element").html("<p>Nuovo contenuto</p>");`
Manipolazione dei campi dei form in jQuery
Il metodo `.val()` in jQuery è specifico per i campi di input dei form. Permette di ottenere o impostare il valore di input, textarea, select, ecc.
Ottenere valore di input: `$("#inputForm").val();`
Impostare valore di input: `$("#inputForm").val("Nuovo valore");`
Volendo scendere più nel dettaglio, specifichiamo che in merito alla manipolazione dei campi di un form jQuery fornisce vari metodi per ottenere e impostare i valori, oltre a gestire gli stati di selezione e attivazione.
Ottenere e Impostare Valori: : jQuery .val()
Con `.val()`, è possibile ottenere o impostare il valore di quasi tutti gli elementi di un form.
// Impostare il valore di un campo di input
$("#myInput").val("Inserisci testo qui");
// Ottenere il valore da un campo di input
let inputValue = $("#myInput").val();
Elementi Select: jQuery .val()
Per gli elementi `select`, `.val()` può essere utilizzato per ottenere o impostare l'opzione selezionata.
// Impostare l'opzione selezionata
$("#mySelect").val("opzione2");
// Ottenere l'opzione selezionata
let selectedOption = $("#mySelect").val();
Selezione e Checkbox: jQuery .is()
Utilizzando jQuery per controllare lo stato di selezione di input checkbox e radio button.
// Verificare se un checkbox è selezionato
if ($("#myCheckbox").is(":checked")) {
// Fare qualcosa se il checkbox è selezionato
}
// Selezionare un radio button
$("#myRadioButton").prop("checked", true);
Esempi Pratici
Supponiamo di avere una struttura HTML semplice con alcuni campi di input e un paragrafo:
<input type="text" id="myInput" />
<select id="mySelect">
<option value="opzione1">Opzione 1</option>
<option value="opzione2">Opzione 2</option>
</select>
<p id="displayText"></p>
Utilizzando jQuery, possiamo facilmente manipolare questi elementi:
$(document).ready(function() {
// Imposta il valore iniziale dell'input
$("#myInput").val("Ciao Mondo!");
// Cambia il testo del paragrafo quando cambia il valore del select
$("#mySelect").change(function() {
let selectedValue = $(this).val();
$("#displayText").text("Hai selezionato: " + selectedValue);
});
});
4.3
Lavorare con gli attributi degli elementi in jQuery
Lavorare con gli attributi degli elementi HTML è una componente essenziale nello sviluppo web. JQuery semplifica questa attività fornendo metodi potenti e flessibili per gestire gli attributi degli elementi del DOM.
Cos'è un attributo in HTML?
Un attributo in HTML fornisce informazioni aggiuntive su un elemento, come l'identificativo (`id`), le classi (`class`), lo stile (`style`), e altri dati specifici (ad esempio, `href` per i link o `src` per le immagini). La manipolazione di questi attributi è fondamentale per il controllo dinamico del comportamento e dell'aspetto degli elementi nella pagina.
Metodi jQuery per la gestione degli attributi
1. Ottenere e impostare attributi: jQuery `.attr()`
Ottenere un attributo: per ottenere il valore di un attributo, si utilizza `.attr()` con un solo parametro, il nome dell'attributo.
Impostare un attributo: per impostare un valore, si fornisce un secondo parametro a `.attr()`.
let linkUrl = $("a").attr("href"); // Ottiene l'attributo href
$("a").attr("href", "https://aulab.it/"); // Imposta un nuovo href
2. Rimuovere Attributi: jQuery `.removeAttr()`
Questo metodo viene utilizzato per rimuovere completamente un attributo da un elemento.
$("a").removeAttr("title"); // Rimuove l'attributo title da tutti i link
3. Gestione delle Classi: jQuery `.addClass()`, jQuery `.removeClass()`, jQuery `.toggleClass()`
Questi metodi sono utilizzati per manipolare le classi degli elementi.
$("#myElement").addClass("active"); // Aggiunge una classe
$("#myElement").removeClass("inactive"); // Rimuove una classe
$("#myElement").toggleClass("highlight"); // Alterna la presenza di una classe
4. Lavorare con attributi personalizzati: jQuery `data-*`
Gli attributi `data-*` consentono di immagazzinare informazioni aggiuntive sugli elementi senza interferire con la presentazione o la semantica.
let info = $("#myElement").data("info"); // Ottiene dati da un attributo data-info
$("#myElement").data("info", "nuovo valore"); // Imposta un nuovo valore
Come manipolare gli attributi degli elementi in jQuery: esempi pratici
Vediamo ora alcuni esempi pratici di come manipolare gli attributi degli elementi con jQuery.
<a id="link" href="https://aulab.it/" title="Visita Aulab.it">Visita Aulab</a>
<div id="myDiv" class="box" data-info="informazioni aggiuntive"></div>
Codice jQuery
$(document).ready(function() {
// Cambiare l'URL di un link
$("#link").attr("href", "https://www.example.com");
// Rimuovere il titolo dal link
$("#link").removeAttr("title");
// Aggiungere una classe al div
$("#myDiv").addClass("active");
// Modificare un attributo data-*
$("#myDiv").data("info", "nuovo dato");
});
4.4
Gestire le classi CSS con jQuery
La gestione delle classi CSS è un aspetto fondamentale dello sviluppo front end. jQuery, con i suoi metodi intuitivi, rende questa attività semplice ed efficace. In questa sezione vedremo propprio come jQuery può essere utilizzato per aggiungere, rimuovere, e verificare la presenza di classi CSS sugli elementi del DOM, offrendo una maggiore flessibilità nella manipolazione dell'aspetto e del comportamento degli elementi di una pagina web.
Introduzione alle classi CSS
Le classi CSS sono utilizzate per definire stili per elementi HTML. La capacità di modificare dinamicamente queste classi tramite linguaggio JavaScript permette di alterare l'aspetto e il layout della pagina in risposta a interazioni dell'utente o altri eventi.
Metodi jQuery per la gestione delle classi CSS
1. Aggiungere classi: jQuery `.addClass()`
Il metodo .addClass in jQuery aggiunge una o più classi a un elemento selezionato.
$("#myElement").addClass("new-class"); // Aggiunge "new-class" all'elemento
Puoi anche aggiungere più classi contemporaneamente:
$("#myElement").addClass("class1 class2");
2. Rimuovere classi: jQuery `.removeClass()`
Il metodo .removeClass in jQuery rimuove una o più classi dall'elemento selezionato.
$("#myElement").removeClass("existing-class"); // Rimuove "existing-class"
Anche qui, è possibile rimuovere più classi contemporaneamente:
$("#myElement").removeClass("class1 class2");
3. Alternare classi: jQuery `.toggleClass()`
Il metodo .toggleClass in jQuery alterna la presenza di una o più classi su un elemento. Se la classe è presente, la rimuove; se non è presente, la aggiunge.
$("#myElement").toggleClass("toggle-class"); // Alterna "toggle-class"
Puoi anche gestire più classi:
$("#myElement").toggleClass("class1 class2");
4. Verificare la presenza di una classe: jQuery `.hasClass()`
Il metodo .hasClass in jQuery verifica se un elemento possiede una specifica classe, restituendo `true` o `false`.
if ($("#myElement").hasClass("some-class")) {
console.log("L'elemento ha la classe 'some-class'");
}
Come manipolare le classi css con jQuery: esempi pratici
Supponiamo di avere un documento HTML con un elemento `<div>` e un pulsante:
<div id="myDiv" class="box"></div>
<button id="myButton">Toggle Class</button>
Ecco come possiamo usare jQuery per manipolare le classi di `#myDiv`:
$(document).ready(function() {
// Aggiungere una classe al div
$("#myDiv").addClass("new-class");
// Rimuovere la classe 'box'
$("#myDiv").removeClass("box");
// Alternare una classe al clic del pulsante
$("#myButton").click(function() {
$("#myDiv").toggleClass("active");
});
});
Nei capitoli a seguire approfondiremo la modifica del CSS con jQuery presentando esempi più avanzati.
5
Traversing e navigazione in jQuery
5.1
Metodi di Traversing in jQuery
Cos'è il traversing in jQuery?
Il traversing è un concetto fondamentale nella programmazione jQuery, che permette agli sviluppatori di navigare e manipolare il Document Object Model (DOM) in modo efficiente.
In jQuery, il traversing si riferisce al processo di "attraversare" o navigare attraverso il DOM per trovare, selezionare, e manipolare gli elementi HTML. Questo include azioni come trovare il genitore di un elemento, selezionare tutti i suoi figli, o cercare elementi adiacenti.
Il traversing è essenziale per lavorare con il DOM in modo dinamico e reattivo. Vediamo insieme, nel capitolo successivo, quali sono i diversi metodi di traversing in jQuery.
Metodi di Traversing in jQuery
jQuery fornisce diversi metodi per eseguire il traversing del DOM. Questi metodi possono essere suddivisi in diverse categorie in base alla loro funzione.
1. Selezione di elementi specifici
`.parent()`: Seleziona il genitore diretto di un elemento.
`.children()`: Trova tutti i figli diretti di un elemento.
`.find(selector)`: Cerca tutti i discendenti di un elemento che corrispondono a un selettore specificato.
`.siblings()`: Seleziona tutti i fratelli di un elemento.
2. Filtraggio di element in jQuery
`.first()`, `.last()`: Selezionano rispettivamente il primo o l'ultimo elemento di un insieme.
`.eq(index)`: Seleziona l'elemento in una posizione specifica dell'insieme.
`.filter(selector)`: Riduce l'insieme degli elementi selezionati a quelli che corrispondono al selettore.
3. Navigazione nel DOM in jQuery
`.next()`, `.prev()`: Selezionano rispettivamente l'elemento successivo o precedente.
`.closest(selector)`: Trova l'antenato più vicino che corrisponde al selettore specificato.
`.parentsUntil(selector, filter)`: Seleziona tutti i genitori di un elemento fino a un elemento dato, opzionalmente filtrato da un selettore.
Come utilizzare i metodi di traversing in jQuery: esempi pratici
Supponiamo di avere il seguente codice HTML:
<div class="container">
<ul>
<li class="item">Item 1</li>
<li class="item">Item 2
<ul>
<li class="subitem">Subitem 1</li>
<li class="subitem">Subitem 2</li>
</ul>
</li>
<li class="item">Item 3</li>
</ul>
</div>
Ecco alcuni esempi di come utilizzare i metodi di traversing in jQuery con questo HTML:
$(document).ready(function() {
// Trovare il genitore di un elemento
$(".subitem").parent().css("border", "1px solid red"); // Ulteriormente ul
// Selezionare tutti i fratelli di un elemento
$(".item").siblings().css("background-color", "yellow");
// Trovare tutti i discendenti che corrispondono a un selettore
$(".container").find(".subitem").css("font-weight", "bold");
// Selezionare il primo elemento di un insieme
$(".item").first().css("text-decoration", "underline");
});
5.2
Selezionare figli, genitori e fratelli in jQuery
Abbiamo visto come la navigazione nel Document Object Model (DOM) sia un aspetto cruciale della programmazione web. JQuery semplifica questa navigazione fornendo metodi intuitivi per selezionare figli, genitori e fratelli di un elemento. Esploriamo, a seguire, questi metodi, offrendo insight su come possono essere utilizzati per manipolare efficacemente il DOM.
Selezionare i figli di un elemento in jQuery: jQuery .children()
Il metodo `children()`in jQuery seleziona tutti i figli diretti di un elemento specificato. È importante notare che questo metodo non seleziona i discendenti più profondi (figli dei figli).
$("#parentElement").children().css("color", "red");
In questo esempio, il metodo `children()` applica il colore rosso a tutti i figli diretti dell'elemento con l'ID `parentElement`.
Selezionare il genitore di un elemento in jQuery: jQuery .parent()
Il metodo `parent()` in jQuery seleziona il genitore diretto di un elemento. È utile per manipolare l'elemento che contiene direttamente il tuo elemento selezionato.
$(".childElement").parent().css("background-color", "blue");
Qui, il genitore dell'elemento con la classe `childElement` avrà uno sfondo blu.
Selezionare i fratelli di un elemento in jQuery: jQuery.siblings()
Il metodo `siblings()` in jQuery seleziona tutti i fratelli di un elemento, ovvero tutti gli altri elementi che condividono lo stesso genitore.
$("#specificElement").siblings().css("opacity", "0.5");
In questo esempio, tutti i fratelli dell'elemento con l'ID `specificElement` vengono selezionati e la loro opacità viene impostata al 50%.
La selezione di figli, genitori e fratelli di un elemento è una parte fondamentale della navigazione e manipolazione del DOM. jQuery fornisce metodi efficaci e facili da usare per eseguire queste operazioni, rendendo il processo di sviluppo più veloce e meno incline ad errori. Che si tratti di applicare stili, effettuare modifiche al contenuto o gestire eventi, la capacità di navigare facilmente nel DOM è un'abilità preziosa per qualsiasi sviluppatore front end. Con `children()`, `parent()`, e `siblings()`, jQuery offre un potente toolkit per interagire dinamicamente con la struttura della pagina web.
6
Manipolazione avanzata del DOM
6.1
Inserire nuovi elementi nel DOM con jQuery
Inserire elementi nel DOM è un'operazione comune nello sviluppo web. Che si tratti di aggiungere un paragrafo di testo, inserire un'immagine, o creare un nuovo input in un form, jQuery rende queste azioni semplici e dirette.
`.append()`: Il metodo `.append()` inserisce uno o più elementi HTML come ultimi figli dell'elemento selezionato.
$("#container").append("<p>Questo è un nuovo paragrafo</p>");
Questo codice inserisce un nuovo paragrafo alla fine dell'elemento con l'ID `container`.
`.prepend()`: Funziona come `.append()`, ma inserisce l'elemento come primo figlio dell'elemento selezionato.
$("#container").prepend("<p>Questo è il primo paragrafo</p>");
Questo esempio inserisce il paragrafo all'inizio dell'elemento `container`.
`.after()`: Inserisce elementi direttamente dopo l'elemento selezionato nel DOM.
$("#elemento").after("<div>Un nuovo div dopo l'elemento</div>");
Qui, un nuovo `div` viene inserito immediatamente dopo l'elemento con l'ID `elemento`.
`.before()`: Similmente a `.after()`, `.before()` inserisce elementi direttamente prima dell'elemento selezionato.
$("#elemento").before("<div>Un nuovo div prima dell'elemento</div>");
In questo caso, un nuovo `div` viene inserito prima dell'elemento `elemento`.
Inserire nuovi elementi nel DOM è una funzione fondamentale nello sviluppo web, e jQuery offre metodi semplici ed efficaci per realizzarlo. Con `.append()`, `.prepend()`, `.after()`, e `.before()`, gli sviluppatori possono facilmente aggiungere contenuti dinamicamente, migliorando l'interattività e la flessibilità delle loro applicazioni web. Questi metodi consentono di manipolare il DOM in modo intuitivo e potente, essenziale per la creazione di pagine web moderne e reattive.
6.2
Sostituire, rimuovere e clonare elementi nel DOM con jQuery
La manipolazione di elementi nel Document Object Model (DOM) è una pratica comune nello sviluppo web. jQuery, con la sua ricca libreria di funzioni, rende queste operazioni semplici e intuitive. Esploriamo come jQuery può essere utilizzato per sostituire, rimuovere e clonare elementi nel DOM, capacità essenziali per gestire le interfacce utente dinamiche.
Sostituire Elementi nel DOM con jQuery
Metodi `.replaceWith()` e `.replaceAll()`
jQuery offre due metodi principali per sostituire gli elementi: `.replaceWith()` e `.replaceAll()`.
`.replaceWith()`: Sostituisce l'elemento selezionato con un nuovo elemento o contenuto.
$("#elementoDaSostituire").replaceWith("<div>Nuovo contenuto</div>");
In questo esempio, l'elemento con l'ID `elementoDaSostituire` viene sostituito con un nuovo `div`.
`.replaceAll()`: Sostituisce tutti gli elementi corrispondenti al selettore specificato con l'elemento selezionato.
$("<div>Nuovo contenuto</div>").replaceAll(".elementiDaSostituire");
Qui, tutti gli elementi con la classe `elementiDaSostituire` vengono sostituiti con un nuovo `div`.
Rimuovere Elementi dal DOM con jQuery
Metodi `.remove()` e `.empty()`
Per rimuovere elementi dal DOM, jQuery fornisce i metodi `.remove()` e `.empty()`.
`.remove()`: Rimuove l'elemento selezionato dal DOM, incluse tutte le sue interazioni come eventi e dati associati.
$("#elementoDaRimuovere").remove();
Questo codice rimuove l'elemento con l'ID `elementoDaRimuovere` dal DOM.
`.empty()`: Svuota tutti i contenuti dell'elemento selezionato, rimuovendo tutti i suoi figli ma mantenendo l'elemento stesso nel DOM.
$("#containerDaSvuotare").empty();
Con questo comando, tutti i figli all'interno dell'elemento `containerDaSvuotare` vengono rimossi, lasciando il container vuoto.
Clonare Elementi nel DOM con jQuery
Metodo `.clone()
Il metodo `.clone()` crea una copia esatta dell'elemento selezionato, inclusi tutti gli attributi e, opzionalmente, tutti gli eventi associati.
let elementoClonato = $("#elementoDaClonare").clone();
Questo crea una copia dell'elemento con l'ID `elementoDaClonare`. Se si desidera clonare anche gli eventi, si può utilizzare `.clone(true)`.
Esempi Pratici
Consideriamo la seguente struttura HTML:
<div id="container">
<div id="elementoDaSostituire">Vecchio Contenuto</div>
<div id="elementoDaClonare">Clonami</div>
</div>
Sostituire un Elemento
$("#elementoDaSostituire").replaceWith("<div>Nuovo Contenuto</div>");
Clonare un elemento
let clone = $("#elementoDaClonare").clone();
$("#container").append(clone);
La capacità di sostituire, rimuovere e clonare elementi nel DOM è fondamentale nello sviluppo web moderno. jQuery semplifica queste operazioni, rendendo la manipolazione del DOM più accessibile e gestibile.
6.3
Avvolgere e svuotare elementi in jQuery
L'avvolgimento di elementi è una tecnica usata per inserire nuove strutture HTML intorno a elementi esistenti nel DOM. jQuery offre tre metodi principali per questo: .wrap(), .wrapAll(), e .wrapInner().
.wrap(): Avvolge ogni elemento selezionato individualmente con una nuova struttura HTML specificata.
$(".item").wrap("<div class='new-wrapper'></div>");
In questo esempio, ogni elemento con la classe item viene avvolto individualmente in un div con la classe new-wrapper.
.wrapAll(): Avvolge tutti gli elementi selezionati insieme in un unico elemento wrapper.
$(".items").wrapAll("<div class='new-wrapper'></div>");
Qui, tutti gli elementi con la classe items vengono avvolti insieme in un singolo div.
.wrapInner(): Avvolge il contenuto interno di ciascun elemento selezionato in una nuova struttura HTML.
$("#container").wrapInner("<div class='inner-wrapper'></div>");
Applicazioni Pratiche
Immaginiamo una struttura HTML con un contenitore e alcuni elementi:
<div id="container">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
</div>
Utilizzando jQuery:
Avvolgiamo ogni item e i contenuti interni del container.
Svuotiamo il container per rimuoverne tutti i contenuti.
Queste tecniche di avvolgimento e svuotamento offrono agli sviluppatori la flessibilità di modificare dinamicamente il layout e il contenuto delle pagine web.
7
Stilizzazione e CSS
7.1
Introduzione alla manipolazione CSS con jQuery
La manipolazione del CSS è una parte fondamentale dello sviluppo front-end, e jQuery offre una serie di strumenti potenti per gestire lo stile degli elementi HTML. Questo articolo fornisce una panoramica di come jQuery può essere utilizzato per manipolare il CSS, permettendo agli sviluppatori di creare interfacce utente dinamiche e reattive con maggiore facilità.
Metodi di Base per la Manipolazione CSS con jQuery
Cambiare Stili: `.css()`: Uno dei più potenti e utilizzati in jQuery per la manipolazione del CSS. Esso può essere utilizzato in due modi principali:
Impostare lo Stile: Per cambiare lo stile di un elemento, si passa una coppia chiave-valore.
$("#elemento").css("color", "blue");
Questo cambierà il colore del testo dell'elemento con l'ID `elemento` in blu.
Ottenere lo Stile: Per ottenere il valore di una proprietà CSS di un elemento, si passa solo il nome della proprietà.
let colore = $("#elemento").css("color");
Questo restituirà il colore del testo dell'elemento specificato.
Aggiungere e Rimuovere Classi: `.addClass()`, `.removeClass()`, `.toggleClass()`
jQuery offre anche metodi per aggiungere, rimuovere o alternare classi CSS di un elemento:
`.addClass()`: Aggiunge una o più classi a un elemento.
$("#elemento").addClass("nuova-classe");
`.removeClass()`: Rimuove una o più classi da un elemento.
$("#elemento").removeClass("vecchia-classe");
`.toggleClass()`: Aggiunge la classe se l'elemento non la possiede, la rimuove se l'elemento la possiede già.
$("#elemento").toggleClass("toggle-classe");
Dimensioni e Posizionamento: `.height()`, `.width()`, `.position()`
jQuery consente anche di manipolare le dimensioni e il posizionamento degli elementi.
`.height()` e `.width()`: Impostano o ritornano l'altezza e la larghezza di un elemento.
`.position()`: Restituisce la posizione dell'elemento rispetto al suo elemento padre.
Supponiamo di avere un semplice documento HTML:
<div id="elemento" class="vecchia-classe">Contenuto</div>
Cambiare Stili con `.css()`
// Cambiare il colore
$("#elemento").css("color", "red");
// Ottenere il colore
let colore = $("#elemento").css("color");
Aggiungere e Rimuovere Classi
// Aggiungere una classe
$("#elemento").addClass("nuova-classe");
// Rimuovere una classe
$("#elemento").removeClass("vecchia-classe");
// Alternare una classe
$("#elemento").toggleClass("toggle-classe");
7.2
Calcolo delle dimensioni e posizioni con jQuery
La gestione delle dimensioni e delle posizioni degli elementi è un aspetto cruciale nella creazione di layout responsivi e interfacce utente dinamiche nel web design. jQuery, una libreria JavaScript versatile, fornisce metodi semplici ma potenti per calcolare e manipolare queste proprietà.
Metodi jQuery per Dimensioni e Posizioni
`.width()` e `.height()`: Questi metodi ottengono o impostano la larghezza e l'altezza di un elemento, escludendo margini, bordi e padding.
let larghezza = $("#elemento").width(); let altezza = $("#elemento").height();
Dimensioni degli Elementi
`.innerWidth()` e `.innerHeight()`: Ottengono la larghezza e l'altezza di un elemento, inclusi i padding ma esclusi i bordi e i margini.
let larghezzaConPadding = $("#elemento").innerWidth();
let altezzaConPadding = $("#elemento").innerHeight();
`.outerWidth()` e `.outerHeight()`: Includono padding, bordi e, opzionalmente, margini nell'ottenimento delle dimensioni dell'elemento.
let larghezzaTotale = $("#elemento").outerWidth(true); // Include i margini
let altezzaTotale = $("#elemento").outerHeight(true); // Include i margini
Posizionamento degli Elementi
`.offset()`: Restituisce le coordinate (top e left) di un elemento rispetto al documento.
let posizione = $("#elemento").offset();
let top = posizione.top;
let left = posizione.left;
`.position()`: Fornisce le coordinate dell'elemento rispetto al suo elemento padre posizionato
let posizioneRelativa = $("#elemento").position();
Let topRelativo = posizioneRelativa.top;
let leftRelativo = posizioneRelativa.left;
`.scrollTop()` e `.scrollLeft()`: Restituiscono o impostano la posizione dello scroll verticale o orizzontale di un elemento.
let scrollVerticale = $(window).scrollTop();
let scrollOrizzontale = $(window).scrollLeft();
Esempi Pratici
Supponiamo di avere il seguente elemento HTML:
<div id="elemento" style="margin: 10px; border: 5px solid; padding: 20px; width: 200px; height: 150px;"></div>
Calcolare le Dimensioni
// Dimensioni base
let larghezza = $("#elemento").width(); // 200px
let altezza = $("#elemento").height(); // 150px
// Dimensioni con padding
let larghezzaConPadding = $("#elemento").innerWidth(); // Più padding
let altezzaConPadding = $("#elemento").innerHeight(); // Più padding
// Dimensioni totali (inclusi margini, se specificato)
let larghezzaTotale = $("#elemento").outerWidth(true); // Include margini
let altezzaTotale = $("#elemento").outerHeight(true); // Include margini
Ottenere la Posizione
// Posizione rispetto al documento
let posizione = $("#elemento").offset();
let topDocumento = posizione.top;
let leftDocumento = posizione.left;
// Posizione rispetto all'elemento padre
let posizioneRelativa = $("#elemento").position();
let topRelativo = posizioneRelativa.top;
let leftRelativo = posizioneRelativa.left;
Il calcolo delle dimensioni e delle posizioni degli elementi è fondamentale per creare layout responsivi e interfacce utente precise. jQuery facilita notevolmente queste operazioni con i suoi metodi intuitivi, permettendo agli sviluppatori di accedere e manipolare queste proprietà in modo efficiente.
8
Gestione degli eventi
8.1
Introduzione agli eventi in jQuery
Gli eventi sono fondamentali in qualsiasi applicazione web. Essi sono azioni o occorrenze che possono essere catturate dal programma, permettendo al codice di rispondere in leti modi. Ad esempio, gli eventi possono essere originati dall'utente (come cliccare un bottone, inserire testo in un campo di input, o muovere il mouse) o possono essere generati dal browser (come il caricamento della pagina o il ridimensionamento della finestra).
jQuery semplifica la gestione di questi eventi, rendendo più facile eseguire codice specifico in risposta a determinate azioni.
Tipi di Eventi in jQuery e la loro Gestione
In jQuery, gli eventi possono essere suddivisi in diverse categorie:
Eventi del Mouse: Include azioni come clic, doppio clic, e movimenti del mouse.
Eventi della Tastiera: Gestisce la pressione e il rilascio dei tasti.
Eventi del Form: Sono importanti per la gestione dei moduli, come il cambio di stato di un campo o la presentazione di un modulo.
Eventi del Documento/UI: Eventi legati al ciclo di vita del documento o a interazioni specifiche dell'interfaccia utente.
Assegnazione di Gestori Eventi in jQuery
jQuery rende l'assegnazione di gestori di eventi estremamente semplice attraverso funzioni come jQuery .on(). Questa funzione può essere utilizzata per collegare un gestore di eventi a un elemento specificato. Per esempio, utilizzando .on(), possiamo facilmente eseguire un blocco di codice quando un utente clicca su un elemento. La bellezza di jQuery sta nella sua capacità di assegnare gestori di eventi in modo conciso e diretto, riducendo la necessità di scrivere codice JavaScript verboso.
8.2
Associare, rimuovere e innescare eventi in jQuery
La gestione degli eventi è una componente essenziale nella programmazione web moderna. jQuery offre una suite di strumenti potenti per associare, rimuovere e innescare eventi, semplificando notevolmente l'interazione tra l'utente e l'interfaccia web. In questo articolo, esploreremo come jQuery gestisce questi aspetti fondamentali della programmazione di eventi.
Associare Eventi con jQuery
L'associazione di eventi è il processo di collegamento di una funzione a un evento su un elemento specifico, come un clic del mouse o una pressione di un tasto. jQuery, come per il resto, rende questo processo incredibilmente semplice e intuitivo.
jQuery on: utilizzo del Metodo `.on()`
Il metodo `.on()` di jQuery è uno strumento versatile per associare gestori di eventi.
Permette di specificare l'evento, l'elemento su cui agire, e la funzione da eseguire quando l'evento si verifica.
Ad esempio, per associare un evento di clic a un bottone, si potrebbe usare:
$("#bottone").on("click", function() {
alert("Bottone cliccato!");
});
Questo metodo è particolarmente potente perché può gestire anche eventi su elementi creati dinamicamente.
Rimuovere Eventi con jQuery
Ci sono situazioni in cui è necessario rimuovere un gestore di eventi precedentemente associato. Questo può essere necessario per evitare effetti collaterali indesiderati o per ottimizzare le prestazioni dell'applicazione. Come fare? Scopriamolo.
jQuery off: utilizzo del Metodo `.off()`
jQuery fornisce il metodo `.off()` per rimuovere i gestori di eventi. Per rimuovere un evento, basta specificare l'evento e l'elemento dal quale rimuoverlo.
Ad esempio, per rimuovere l'evento di clic dal bottone sopra menzionato, si potrebbe scrivere:
$("#bottone").off("click");
Questo metodo è essenziale per una gestione efficace degli eventi, soprattutto in applicazioni web dinamiche.
Innescare Eventi con jQuery
A volte, potrebbe essere necessario innescare manualmente un evento come parte della logica dell'applicazione. jQuery offre funzionalità per innescare eventi sia predefiniti che personalizzati. Ciò è possibile grazie al metodo jQuery .trigger(). Vediamolo insieme.
jQuery trigger: utilizzo del Metodo `.trigger()`
Il metodo jQuery `.trigger()` può essere utilizzato, come dicevamo, per innescare manualmente un evento su un elemento.
Ad esempio, se si desidera simulare un clic su un bottone, si può utilizzare:
$("#bottone").trigger("click");
Questo metodo può essere estremamente utile per testare o per simulare interazioni utente in scenari specifici.
L'associazione, la rimozione e l'innescamento di eventi sono operazioni fondamentali nella programmazione web e jQuery fornisce metodi semplici ed efficienti per gestirli.
8.3
Delegazione e propagazione degli eventi in jQuery
Nel contesto della programmazione web, capire come funzionano la delegazione e la propagazione degli eventi è essenziale. Questi concetti sono particolarmente importanti in jQuery: scopriamo come questa libreria li rende accessibili e gestibili.
Delegazione degli Eventi in jQuery
La delegazione degli eventi è una tecnica di gestione degli eventi che sfrutta il concetto di event bubbling (propagazione dell'evento) nel DOM (Document Object Model). Invece di assegnare un gestore di eventi a un singolo elemento, la delegazione consente di assegnarlo a un elemento genitore, che poi ascolta gli eventi innescati dai suoi elementi figli.
Vantaggi della Delegazione degli eventi in jQuery
Efficienza: Riduce il sovraccarico di memoria perché meno gestori di eventi sono necessari.
Dinamicità: Gestisce gli eventi su elementi che vengono aggiunti dinamicamente al DOM, senza la necessità di riassegnare i gestori di eventi ogni volta.
jQuery implementa la delegazione degli eventi attraverso il metodo .on(), quando è usato con un selettore specificato. Ad esempio:
$("#contenitore").on("click", "button", function() {
alert("Bottone cliccato!");
});
In questo esempio, tutti i bottoni all'interno dell'elemento con ID contenitore avranno un gestore di evento di clic, anche se vengono aggiunti al DOM in un secondo momento.
Propagazione degli Eventi in jQuery
La propagazione degli eventi descrive il modo in cui gli eventi si diffondono attraverso il DOM. Gli eventi nel linguaggio JavaScript seguono due fasi principali: la fase di capturing (cattura) e la fase di bubbling (propagazione).
Event capturing
Durante la fase di capturing, l'evento viene catturato dall'elemento più esterno nell'albero DOM e prosegue verso l'elemento target dell'evento. Questo comportamento consente di intercettare gli eventi prima che raggiungano l'elemento specifico che li ha originati.
Event Bubbling
Nel bubbling, l'evento inizia dall'elemento più interno e si propaga verso gli elementi genitori. Questo comportamento è la base della delegazione degli eventi.
Controllare la Propagazione in jQuery
A volte, è necessario interrompere questo processo per evitare che un evento si propaghi ulteriormente nel DOM. jQuery fornisce metodi per controllare questa propagazione:
.stopPropagation(): Previene la propagazione ulteriore dell'evento nel DOM.
.preventDefault(): Previene il comportamento predefinito dell'evento (ad esempio, impedisce a un modulo di essere inviato).
$("#elemento").click(function(event) {
event.stopPropagation();
// Il codice qui viene eseguito senza influenzare altri elementi
});
In questo esempio, quando #elemento viene cliccato, il suo gestore di evento viene eseguito, ma l'evento non si propaga oltre.
9
Effetti, transizioni e animazioni
9.1
Uso di effetti predefiniti in jQuery
jQuery rende l'aggiunta di effetti visivi un processo semplice e, al contempo, offre un'ampia letietà di opzioni per personalizzare l'esperienza utente. Gli effetti base come mostrare, nascondere e alternare la visibilità degli elementi sono solo la punta dell'iceberg. La libreria include anche effetti più sofisticati come fading e sliding, che possono essere impiegati in sletiate situazioni, dalla creazione di gallerie fotografiche alla gestione di menù a scomparsa.
Effetti di Base: Show, Hide, e Toggle in jQuery
Gli effetti .show() e .hide() di jQuery sono i più basilari, utilizzati per controllare la visibilità degli elementi. Possono essere impiegati per rispondere a eventi come click o interazioni dell'utente, per mostrare o nascondere informazioni pertinenti. Il metodo .toggle(), che alterna tra la visibilità e l'invisibilità di un elemento, offre un ulteriore livello di interattività, particolarmente utile in interfacce con spazi limitati.
Il Fading in jQuery
Gli effetti di fading, quali .fadeIn() e .fadeOut(), aggiungono un tocco di eleganza nelle transizioni visive. Consentono agli elementi di apparire e scomparire gradualmente, creando un'esperienza utente più fluida e meno brusca. Questi effetti sono particolarmente apprezzati in gallerie d'immagini o per mostrare messaggi di avviso o conferma.
Gli Effetti di Sliding in jQuery
Per un impatto visivo ancora più dinamico, gli effetti di sliding come .slideDown() e .slideUp() sono strumenti potenti. Creano un effetto di scorrimento verticale che può essere utilizzato per rivelare o nascondere contenuti in modo interattivo, come si vede spesso in menu a discesa o pannelli informativi.
Controllo e Personalizzazione degli effetti in jQuery
Un aspetto fondamentale degli effetti jQuery è la possibilità di personalizzarli. Oltre a definire la durata dell'effetto, è possibile specificare una funzione di callback da eseguire una volta completato l'effetto. Questo fornisce agli sviluppatori web un controllo preciso sull'esperienza utente e permette di coordinare gli effetti con altre azioni o animazioni sulla pagina.
9.2
Creare animazioni personalizzate in jQuery
Nel vasto panorama delle interfacce utente, le animazioni personalizzate rappresentano un modo efficace per catturare l'attenzione dell'utente e migliorare l'interattività delle pagine web. jQuery fornisce uno strumento potente e flessibile per la creazione di animazioni personalizzate. Questo articolo esplora come sfruttare le capacità di jQuery per dar vita a animazioni uniche e coinvolgenti.
L'Arte dell'Animazione in jQuery
jQuery semplifica il processo di creazione di animazioni personalizzate, permettendo agli sviluppatori di andare oltre gli effetti standard come fade e slide. Grazie alla sua funzione .animate(), è possibile animare quasi qualsiasi proprietà CSS di un elemento, aprendo un mondo di possibilità creative.
La Funzione .animate() in jQuery
Il cuore delle animazioni personalizzate in jQuery è il metodo .animate(). Questa funzione consente di modificare gradualmente le proprietà CSS di un elemento nel tempo, creando un effetto di transizione animato. Vediamo un esempio.
Esempio base
$("#elemento").animate({
opacity: 0.5,
height: "50%",
marginLeft: "100px"
}, 1000);
In questo esempio, #elemento cambierà la sua opacità, altezza e margine sinistro nel corso di 1000 millisecondi (1 secondo).
Personalizzazione dell'Animazione in jQuery
Una delle caratteristiche più potenti di .animate() è la sua capacità di personalizzazione. È possibile animare quasi qualsiasi proprietà CSS, da dimensioni e posizioni a colori e opacità. Inoltre, si possono definire multiple proprietà contemporaneamente, consentendo di creare animazioni complesse e strati di transizioni.
Controllo del Timing delle animazioni in jQuery
Il controllo delle tempistiche è fondamentale nelle animazioni. jQuery consente di specificare la durata dell'animazione, oltre a opzioni avanzate come easing (per controllare la velocità dell'animazione in diversi punti) e funzioni di callback, che possono essere eseguite al termine dell'animazione.
Easing e Callbacks in jQuery
Easing: jQuery offre diverse funzioni di easing, che influenzano il ritmo dell'animazione.
Callbacks: Le funzioni di callback permettono di eseguire codice dopo il completamento dell'animazione, utile per catenare animazioni o per modificare altri elementi della pagina.
<!DOCTYPE html>
<html>
<head>
<title>Esempio jQuery Easing e Callbacks</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div id="myDiv" style="width:100px; height:100px; background-color:red; position: relative;"></div>
<button id="startAnimation">Inizia l'animazione</button>
<script>
$(document).ready(function(){
$("#startAnimation").click(function(){
$("#myDiv").animate({ left: '250px' }, {
duration: 2000,
easing: 'swing', // Qui puoi cambiare la funzione di easing
complete: function(){
alert("Animazione completata!");
// Qui puoi inserire altre azioni da eseguire dopo l'animazione
}
});
});
});
</script>
</body>
</html>
In questo esempio:
Quando l'utente clicca sul pulsante, l'elemento div con id myDiv si sposta di 250 pixel a destra.
La funzione di easing swing viene utilizzata per creare un effetto più naturale durante l'animazione.
Una volta completata l'animazione, viene visualizzato un messaggio di alert, grazie alla funzione di callback complete. Qui puoi inserire ulteriori azioni, come iniziare un'altra animazione o modificare altri elementi della pagina.
Considerazioni sulla Performance
Mentre le animazioni possono migliorare significativamente l'interattività, è importante considerare le implicazioni sulla performance. Animazioni complesse o un uso eccessivo di esse possono influire sulla fluidità dell'interfaccia utente, soprattutto su dispositivi con risorse limitate. Utilizzale, quindi, con parsimonia!
Applicazioni Pratiche delle animazioni
Le animazioni personalizzate trovano applicazione in numerosi scenari: dalla creazione di menu animati e slideshow, all'accentuazione di cambiamenti di stato nelle interfacce utente. Sono particolarmente efficaci per guidare l'attenzione dell'utente e per aggiungere un livello di raffinatezza e professionalità al design web.
9.3
Gestione della coda degli effetti in jQuery
La coda degli effetti in jQuery è un meccanismo che allinea gli effetti e le animazioni per un elemento in una sequenza specifica. Quando si applicano più effetti a un elemento, questi non si sovrappongono immediatamente, ma seguono un ordine prestabilito, permettendo a ogni effetto di svolgersi completamente prima che inizi il successivo.
Funzionamento della Coda degli effetti in jQuery
Quando si invoca un effetto su un elemento, jQuery lo inserisce in una coda. Di default, gli effetti sono inseriti nella coda principale, ma è possibile creare code personalizzate per un controllo più fine.
Esempio di Coda di Base
$("#elemento").slideUp(300).fadeIn(400);
In questo esempio, #elemento prima eseguirà l'effetto slideUp in 300 millisecondi e, una volta completato, inizierà l'effetto fadeIn che dura 400 millisecondi.
Gestione Avanzata della Coda degli effetti
La potenza della gestione della coda in jQuery risiede nella sua flessibilità. Gli sviluppatori possono manipolare la coda per controllare il timing e l'ordine degli effetti, ottenendo animazioni complesse e sequenze di effetti personalizzati. Vediamo come!
Manipolazione della Coda degli effetti in jQuery
.queue() e .dequeue(): Questi metodi permettono di ispezionare e manipolare la coda degli effetti. .queue() restituisce la coda corrente, mentre .dequeue() rimuove il primo elemento dalla coda e lo esegue.
Code Personalizzate: È possibile definire code multiple per un elemento, permettendo di raggruppare e sequenziare gli effetti in modi diversi.
Esempio di Code Personalizzate
$("#elemento").queue("miaCoda", function(next) {
$(this).css("color", "red");
next();
}).queue("miaCoda", function(next) {
$(this).css("background-color", "blue");
next();
}).dequeue("miaCoda");
Qui, #elemento avrà una serie di modifiche CSS applicate in ordine, utilizzando una coda personalizzata chiamata "miaCoda".
Controllo del Flusso degli effetti in jQuery
La funzione .stop() in jQuery permette di fermare gli effetti correnti e quelli in coda. Questo è utile per interrompere animazioni in risposta a eventi dell'utente o per evitare comportamenti indesiderati.
Esempio di Uso di .stop()
$("#elemento").hover(
function() {
$(this).stop().animate({height: "200px"}, 500);
},
function() {
$(this).stop().animate({height: "100px"}, 500);
}
);
In questo esempio, le animazioni per l'espansione e la contrazione dell'altezza di #elemento si interrompono e ripartono ogni volta che l'utente passa il mouse sopra o si allontana dall'elemento.
10
AJAX e comunicazione con il server
10.1
Introduzione ad AJAX con jQuery
Nel contesto dello sviluppo web, AJAX (Asynchronous JavaScript and XML) rappresenta una pietra miliare per la creazione di applicazioni web dinamiche e interattive. jQuery, con le sue funzionalità semplificate, rende l'implementazione di AJAX più accessibile e potente. Questo articolo esplora i concetti fondamentali di AJAX in jQuery, dimostrando come può essere utilizzato per migliorare l'esperienza utente senza ricaricare l'intera pagina. Ma andiamo per gradi.
Cos'è AJAX?
AJAX sta per Asynchronous JavaScript and XML. È una tecnica di sviluppo web che consente di aggiornare parti di una pagina web senza dover ricaricare l'intera pagina. Questo rende le applicazioni web più veloci, reattive e simili a applicazioni desktop in termini di interattività.
Il Ruolo di jQuery in AJAX
jQuery semplifica anche la gestione delle richieste AJAX, offrendo metodi facili da usare che gestiscono il lavoro pesante della creazione e gestione delle richieste. Con jQuery, gli sviluppatori possono facilmente inviare richieste GET e POST, gestire risposte e errori, e manipolare i dati ricevuti dal server.
Metodi get, post e AJAX in jQuery
Metodo GET in jQuery
Uso: Il metodo GET è principalmente utilizzato per richiedere dati da un server. È il metodo utilizzato di default quando si apre una pagina web o si clicca su un link
Trasmissione dei Dati: I dati inviati al server sono inclusi nell'URL, tipicamente come una stringa di query. Per esempio, in un URL come - http://example.com/page?param1=value1¶m2=value2, param1 e param2 sono i dati inviati al server.
Limitazioni: A causa della limitazione di lunghezza dell'URL (che letia a seconda del browser e del server), GET non è adatto per il trasferimento di grandi quantità di dati. Inoltre, i dati inviati sono visibili nell'URL, il che lo rende inadatto per inviare informazioni sensibili.
Caching e Bookmarking: Le richieste GET possono essere memorizzate nella cache, possono rimanere nella cronologia del browser, e possono essere aggiunte ai segnalibri. Ciò le rende ideali per richieste non modificative, come il recupero di dati.
JQuery Get: metodo GET in jQuery
Il metodo $.get() è utilizzato per inviare una richiesta HTTP GET. Questo tipo di richiesta è comunemente usato per recuperare dati dal server, come file HTML, JSON, o script.
Esempio di Utilizzo di GET
$.get("example.php", function(data) {
// Gestisci la risposta
console.log("Dati ricevuti: " + data);
});
In questo esempio, $.get() invia una richiesta a example.php e gestisce la risposta con una funzione di callback.
Metodo POST in jQuery
Uso: Il metodo POST è usato per inviare dati al server per essere elaborati. È comunemente usato per inviare dati di form.
Trasmissione dei Dati: I dati inviati con una richiesta POST sono inclusi nel corpo della richiesta e non nell'URL. Questo li rende meno soggetti a limitazioni di lunghezza e li nasconde dalla URL bar del browser.
Sicurezza e Capacità di Dati: POST è più sicuro rispetto a GET perché i dati non sono esposti direttamente nell'URL. È anche adatto per inviare grandi quantità di dati poiché non ha le stesse limitazioni di lunghezza di GET.
Nessun Caching: Le risposte alle richieste POST generalmente non vengono memorizzate nella cache del browser e non possono essere aggiunte ai segnalibri. Questo comportamento le rende adatte per operazioni che modificano lo stato del server (come l'aggiornamento o l'inserimento di dati).
jQuery Post: metodo POST in jQuery
Il metodo $.post() è utilizzato per inviare una richiesta HTTP POST. Questo metodo è tipicamente usato per inviare dati al server, ad esempio quando si invia un modulo.
Esempio di Utilizzo di POST
$.post("submit.php", { name: "Mario", age: 30 }, function(data) {
// Gestisci la risposta
console.log("Server risponde: " + data);
});
Qui, $.post() invia i dati { name: "Mario", age: 30 } a submit.php e gestisce la risposta.
JQuery Ajax: metodo AJAX in jQuery
Il metodo $.ajax() è il più versatile e potente tra i metodi AJAX in jQuery. Offre pieno controllo sulla richiesta AJAX, permettendo di specificare tipo di richiesta, dati da inviare, comportamento in caso di successo o errore, e altre opzioni.
Esempio di Utilizzo di AJAX
$.ajax({
url: 'process.php',
type: 'POST',
data: { key: "value" },
success: function(data) {
// Azioni in caso di successo
console.log("Risposta: " + data);
},
error: function() {
// Azioni in caso di errore
alert("Errore nella richiesta AJAX");
}
});
In questo esempio, una richiesta POST viene inviata a process.php con dei dati. Le funzioni success e error gestiscono rispettivamente la risposta in caso di successo o errore della richiesta.
11
Lavorare con dati e strutture
11.1
Uso di metodi di utilità in jQuery
I metodi di utilità in jQuery forniscono funzioni di comodo che possono essere utilizzate per svolgere compiti comuni in modo efficiente e compatto. Questi metodi non operano direttamente sugli elementi del DOM, ma piuttosto offrono utilità generali che possono essere utili in altri contesti della programmazione JavaScript e jQuery. Ecco alcuni esempi significativi:
$.each(): Questo metodo è estremamente utile per iterare su array e oggetti. Consente di eseguire una funzione su ciascun elemento di un array o su ciascuna proprietà di un oggetto.
$.each([ "apple", "orange", "banana" ], function(index, value) {
console.log("Elemento " + index + " è " + value);
});
$.extend(): Questo metodo viene utilizzato per estendere un oggetto con le proprietà di uno o più altri oggetti. È molto utile per unire le impostazioni predefinite con le opzioni fornite dall'utente.
let defaults = { color: "red", size: "medium" };
let options = { size: "large" };
$.extend(defaults, options);
// Ora 'defaults' è { color: "red", size: "large" }
$.trim(): Rimuove gli spazi bianchi dall'inizio e dalla fine di una stringa. Utile per pulire i dati di input o testo.
let myString = " Hello World! ";
console.log($.trim(myString)); // "Hello World!"
$.grep(): Questo metodo viene utilizzato per filtrare gli elementi di un array attraverso una funzione di test. Ritorna un nuovo array contenente solo gli elementi che passano il test.
let numbers = [1, 2, 3, 4, 5, 6];
let evenNumbers = $.grep(numbers, function(n) {
return n % 2 == 0;
});
// evenNumbers sarà [2, 4, 6]
$.map(): Trasforma gli elementi di un array o le proprietà di un oggetto in un nuovo array di valori trasformati.
let doubled = $.map(numbers, function(n) {
return n * 2;
});
// doubled sarà [2, 4, 6, 8, 10, 12]
$.noop(): Una funzione che non fa nulla. È utile come punto di riferimento per fornire funzioni di callback vuote o predefinite.
$.get("example.php").done($.noop); // Chiama $.noop quando la richiesta è completata
$.now(): Restituisce il numero corrente di millisecondi passati dal 1 gennaio 1970 (timestamp UNIX).
let timestamp = $.now();
$.type(): Determina il tipo di dato JavaScript interno di un oggetto.
console.log($.type([])); // "array"
console.log($.type(3)); // "number"
Questi metodi di utilità rendono jQuery uno strumento ancora più potente, consentendo agli sviluppatori di scrivere codice più compatto, leggibile e manutenibile.
12
Estendere jQuery
12.1
Creazione di plugin personalizzati in jQuery
La creazione di plugin personalizzati in jQuery è una pratica potente che consente agli sviluppatori di estendere la libreria con funzionalità specifiche, riusabili e modulari.
Perché Creare Plugin Personalizzati?
Riusabilità: Creare un plugin per una funzionalità specifica che si ripete in diversi progetti rende il codice più riusabile e facile da mantenere.
Modularità: I plugin aiutano a mantenere il codice ordinato e modularizzato, separando le diverse funzionalità in blocchi distinti.
Condivisione e Comunità: Creare plugin permette di condividere soluzioni con altri sviluppatori, contribuendo alla comunità e migliorando le proprie competenze.
Fondamenti della Creazione di Plugin in jQuery
Un plugin jQuery tipicamente inizia con una struttura base che assicura che il plugin sia integrato correttamente con la libreria jQuery. Ad esempio:
(function($) {
$.fn.nomePlugin = function(opzioni) {
// Logica del plugin
};
}(jQuery));
Questa struttura sfrutta una funzione immediatamente invocata (IIFE) per fornire uno scope isolato.
Gestione delle Opzioni dei plugin in jQuery
I plugin jQuery spesso necessitano di opzioni configurabili. Usare un oggetto per le opzioni predefinite e estenderlo con le opzioni fornite dall'utente garantisce flessibilità:
$.fn.nomePlugin = function(opzioni) {
let impostazioni = $.extend({
// Opzioni predefinite
}, opzioni);
// Logica del plugin con 'impostazioni'
};
Catena di Metodi jQuery
Per mantenere la catena di metodi di jQuery, i plugin dovrebbero sempre restituire this alla fine:
$.fn.nomePlugin = function() {
// Logica del plugin
return this;
};
Testare il Plugin in jQuery
Testare il plugin è cruciale. Si possono utilizzare framework di test JavaScript come Jasmine o QUnit per assicurarsi che il plugin funzioni come previsto in diversi scenari e browser.
Documentazione e Mantenimento dei plugin jQuery
Una volta che il plugin è creato e testato, è importante scrivere una documentazione chiara. Questo include:
Come installare e utilizzare il plugin.
Elenco delle opzioni e dei metodi disponibili.
Esempi di utilizzo.
Infine, mantenere il plugin aggiornato è essenziale, soprattutto per garantire la compatibilità con le nuove versioni di jQuery e con i diversi browser.
12.2
Aggiungere nuovi metodi in jQuery
L'ecosistema di jQuery è rinomato per la sua flessibilità e capacità di estensione. Una delle sue caratteristiche distintive è la possibilità di creare nuovi metodi personalizzati. Vediamo, quindi, il processo di creazione di tali metodi, mostrando come ampliare le funzionalità di jQuery per adattarle alle esigenze specifiche dei progetti.
Creazione di Metodi Personalizzati in jQuery
I metodi personalizzati estendono le funzionalità della libreria jQuery, permettendo di incapsulare e riutilizzare logiche specifiche in un'interfaccia semplice e coerente con lo stile jQuery. Ad esempio, potresti voler creare un metodo per applicare una trasformazione complessa o per gestire comportamenti ricorrenti in modo più efficiente.
Come Sviluppare Metodi Personalizzati in jQuery
Per aggiungere un nuovo metodo a jQuery, si estende l'oggetto $.fn, che è l'alias di jQuery.prototype. Ecco un esempio:
$.fn.nomeMetodo = function(opzioni) {
return this.each(function() {
// La logica del metodo
});
};
Questo metodo può, ora, essere invocato su qualsiasi oggetto jQuery:
$('selettore').nomeMetodo();
Utilizzando this.each, si garantisce che il metodo operi correttamente su tutti gli elementi selezionati, mantenendo la catena di metodi di jQuery.
12.3
Best practices per l'estensione di jQuery
Estendere jQuery in modo efficace e sicuro richiede di seguire alcune best practices. Che tu stia aggiungendo nuovi metodi, selettori o plugin, è fondamentale assicurarsi che le estensioni siano ben progettate, non entrino in conflitto con funzionalità esistenti, e siano facili da mantenere.
Utilizzare IIFE per Evitare Conflitti Globali: iniziare con una funzione immediatamente invocata (IIFE - Immediately Invoked Function Expression) è una pratica standard per evitare conflitti nello spazio globale dei nomi. Questo approccio aiuta a prevenire la contaminazione dell'ambiente globale e possibili conflitti con altre librerie:
(function($) {
// Estensioni jQuery qui
}(jQuery));
Verificare l'Esistenza di Metodi o Proprietà: prima di aggiungere un nuovo metodo o proprietà, verifica se esiste già. Sovrascrivere involontariamente un metodo esistente può causare problemi inaspettati.
if (typeof $.fn.nomeMetodo !== 'function') {
$.fn.nomeMetodo = function() {
// Implementazione
};
}
Utilizzare un Prefisso nei Nomi: quando crei plugin o metodi personalizzati, utilizza un prefisso unico per i nomi. Questo riduce il rischio di conflitti con altre estensioni o versioni future di jQuery
$.fn.mioPrefissoNomeMetodo = function() {
// Implementazione
};
Mantenere la Catena di Metodi: per aderire allo stile jQuery, assicurati che i tuoi metodi restituiscano `this` per consentire il chaining (concatenamento) dei metodi.
$.fn.nomeMetodo = function() {
// Implementazione
return this;
};
Gestire le Opzioni in Modo Flessibile: se il tuo metodo o plugin accetta opzioni, utilizza `$.extend` per unire le opzioni passate dall'utente con un set di valori predefiniti. Questo fornisce flessibilità e facilita la personalizzazione.
$.fn.nomeMetodo = function(opzioni) {
let settings = $.extend({
// Opzioni predefinite
}, opzioni);
// Implementazione
};
Testare Approfonditamente: assicurati di testare le estensioni in diversi browser e contesti. Come già suggerito, considera l'uso di framework di test come Jasmine o QUnit per verificare la compatibilità e la robustezza del tuo codice.
Documentazione Chiara: anche qui ci ripetiamo, ma è davvero molto importante che tu fornisca una documentazione dettagliata per i tuoi plugin o metodi, comprese istruzioni di installazione, esempi di utilizzo, opzioni disponibili e qualsiasi dipendenza necessaria. Una buona documentazione è essenziale per l'adozione e il mantenimento dell'estensione.
Considerare la Performance: scrivi il tuo codice pensando alla performance. Evita operazioni costose all'interno di cicli, riduci l'accesso al DOM e utilizza selettori efficienti.
Mantenere la Compatibilità: considera la compatibilità con diverse versioni di jQuery, soprattutto se stai sviluppando plugin che verranno utilizzati in una vasta gamma di progetti.
13
jQuery UI e componenti avanzati
13.1
Introduzione a jQuery UI
jQuery UI è una libreria ricca di widget, effetti e strumenti di interazione per lo sviluppo web, costruita sopra la solida fondazione di jQuery. Questa libreria si rivela essere un compagno prezioso per gli sviluppatori che vogliono arricchire le interfacce utente dei loro siti web e applicazioni. In questo articolo, esploreremo cosa rende jQuery UI un'aggiunta così potente per gli sviluppatori web.
Cos'è jQuery UI?
jQuery UI è un insieme di interazioni, effetti, widget e temi costruiti su jQuery. Permette agli sviluppatori di creare interfacce utente interattive e accattivanti in modo rapido e semplice. Dalla semplice manipolazione di elementi del DOM a complesse interazioni drag-and-drop, jQuery UI offre una gamma di funzionalità per migliorare l'esperienza utente sul web.
Caratteristiche Principali di jQuery UI
Widget: Include una vasta gamma di widget come Datepicker, Slider, Dialog, Tabs, e Autocomplete. Questi componenti sono completamente personalizzabili e pronti all'uso.
Interazioni: Permette di aggiungere comportamenti interattivi come Drag and Drop, Resize, Select, e Sort ai tuoi elementi HTML.
Effetti: Offre una varietà di effetti visivi come Fade, Slide, Bounce, e Animate, che possono essere applicati agli elementi della pagina per creare transizioni e feedback visivi accattivanti.
Temi: Ha un potente sistema di temi, ThemeRoller, che consente di personalizzare l'aspetto dei widget per adattarli al design del tuo sito o applicazione.
Come Iniziare con jQueri UI
Per iniziare con jQuery UI, devi prima includere jQuery e jQuery UI nel tuo progetto. Puoi scaricare la libreria da jQuery UI Website o includerla tramite CDN.
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
Dopo aver incluso questi file, puoi iniziare ad utilizzare i widget e le funzionalità di jQuery UI. Ad esempio, per trasformare un semplice input in un calendario interattivo, puoi usare il Datepicker:
<input type="text" id="datepicker">
<script>
$( "#datepicker" ).datepicker();
</script>
Personalizzazione e Temi in jQuery UI
Uno degli aspetti più potenti di jQuery UI è la sua personalizzabilità. Usando ThemeRoller, puoi creare temi personalizzati che si adattano all'estetica del tuo sito o applicazione. Puoi modificare colori, font, e altri aspetti dei widget senza dover scrivere una singola riga di linguaggio CSS.
Nei capitoli a seguire, esploreremo più nel dettaglio come utilizzare widget e componenti di jQuery UI, e come personalizzare e applicare temi ai widget di jQuery UI
13.2
Uso di widget e componenti di jQuery UI
L'utilizzo dei widget jQuery UI è sorprendentemente semplice. Dopo aver incluso jQuery e jQuery UI nel tuo progetto, puoi iniziare ad applicare i widget agli elementi del DOM. Ecco alcuni esempi:
Datepicker in jQuery UI
Il Datepicker è un calendario interattivo che può essere collegato a un campo di input:
<input type="text" id="datepicker">
<script>
$( "#datepicker" ).datepicker();
</script>
Dialog in jQuery UI
Crea una finestra di dialogo modale o non modale:
<div id="dialog" title="Basic dialog">
<p>Questo è un dialogo di esempio.</p>
</div>
<script>
$( "#dialog" ).dialog();
</script>
Tabs in jQuery UI
Organizza il contenuto in schede interattive:
<div id="tabs">
<ul>
<li><a href="#tabs-1">Prima</a></li>
<li><a href="#tabs-2">Seconda</a></li>
<li><a href="#tabs-3">Terza</a></li>
</ul>
<div id="tabs-1">
<p>Contenuto della prima scheda</p>
</div>
<div id="tabs-2">
<p>Contenuto della seconda scheda</p>
</div>
<div id="tabs-3">
<p>Contenuto della terza scheda</p>
</div>
</div>
<script>
$( "#tabs" ).tabs();
</script>
Personalizzazione dei Widget di jQuery UI
Una delle caratteristiche più potenti di jQuery UI è la sua personalizzabilità. Puoi modificare l'aspetto e il comportamento dei widget utilizzando opzioni, metodi e eventi specifici di ciascun widget.
Opzioni dei widget in jQuery UI
Ogni widget ha un set di opzioni che possono essere configurate. Ad esempio, puoi impostare il formato della data nel Datepicker:
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd"
});
Metodi dei widget in jQuery UI
I widget offrono anche metodi per eseguire azioni specifiche. Per esempio, puoi aprire programmaticamente un dialogo:
$("#dialog").dialog("open");
Eventi dei widget in jQuery UI
Puoi collegare funzioni agli eventi dei widget per eseguire azioni quando accade qualcosa di specifico. Ad esempio, puoi eseguire una funzione quando una nuova data viene selezionata nel Datepicker:
$("#datepicker").datepicker({
onSelect: function(dateText, inst) {
console.log("Data selezionata: " + dateText);
}
});
13.3
Personalizzazione e temi in jQuery UI
jQuery UI non è solo una libreria ricca di widget e componenti interattivi, ma offre anche una vasta gamma di opzioni di personalizzazione e temi. Questa flessibilità permette agli sviluppatori di adattare l'aspetto e il comportamento dei componenti UI per integrarsi perfettamente con il design del loro sito o applicazione. In questo articolo, esploreremo come personalizzare e applicare temi ai widget di jQuery UI, rendendoli non solo funzionali ma anche esteticamente in linea con le esigenze specifiche di ogni progetto.
Il cuore della personalizzazione dei temi in jQuery UI è, come ti avevamo accennato, ThemeRoller, uno strumento online che permette di creare e modificare temi per i widget della libreria. Con ThemeRoller, gli sviluppatori possono:
Scegliere tra una letietà di temi predefiniti.
Modificare colori, font, sfondi, e altri aspetti visivi.
Creare un tema completamente nuovo da zero.
Scaricare il tema personalizzato per l'uso nel proprio progetto.
Come utilizzare ThemeRoller
Per utilizzare ThemeRoller, visita il sito web di ThemeRoller. Qui, puoi selezionare un tema esistente come punto di partenza e iniziare a personalizzarlo secondo le tue preferenze. Una volta terminato, puoi scaricare il tuo tema personalizzato, che includerà tutti i file CSS necessari.
Applicazione di un Tema Personalizzato in ThemeRoller
Dopo aver creato e scaricato il tuo tema personalizzato, includilo nel tuo file HTML per applicarlo ai widget di jQuery UI:
<link rel="stylesheet" href="path/to/your/custom/theme.css">
Assicurati che questo link al CSS personalizzato venga dopo qualsiasi link ai fogli di stile di base di jQuery UI, per garantire che le tue personalizzazioni abbiano la priorità.
Personalizzazione attraverso CSS
Se preferisci una maggiore controllo o hai bisogno di modifiche più dettagliate, puoi personalizzare i widget direttamente tramite linguaggio CSS. Ogni widget di jQuery UI ha una serie di classi CSS che possono essere modificate per modificare l'aspetto:
.ui-datepicker {
background-color: #f2f2f2;
border: 1px solid #ccc;
/* altre personalizzazioni */
}
Best Practices nella Personalizzazione
Coerenza del Design: Assicurati che i temi dei widget siano coerenti con il design generale del tuo sito o applicazione.
Test Cross-Browser: Dopo aver personalizzato il tuo tema, testalo in diversi browser per garantire che appaia e funzioni correttamente ovunque.
Performance: Evita di sovraccaricare i tuoi temi con immagini di grandi dimensioni o codice CSS eccessivamente complesso, che potrebbero rallentare il caricamento delle pagine.
14
Ottimizzazione e performance
14.1
Consigli per scrivere codice Javascript efficiente
Scrivere codice JavaScript efficiente è fondamentale per creare applicazioni web veloci e reattive. L'efficienza del codice influisce direttamente sull'esperienza dell'utente, specialmente in termini di tempo di caricamento della pagina e di risposta dell'interfaccia utente.
1. Minimizzare l'Accesso al DOM
L'accesso e la manipolazione del Document Object Model (DOM) sono operazioni costose. Per migliorare le prestazioni:
Riduci il numero di volte in cui accedi al DOM.
Usa letiabili per memorizzare gli elementi del DOM a cui accedi frequentemente.
Raggruppa le modifiche al DOM prima di applicarle, per ridurre il reflow e repaint.
2. Utilizzare Selettori Efficienti
Nel linguaggio JavaScript e in librerie come jQuery, il modo in cui selezioni gli elementi del DOM può avere un impatto significativo sulle prestazioni:
Preferisci selettori ID e classi ai selettori basati su tag o attributi.
Evita selettori complessi e nidificati quando possibile.
Sfrutta la cascata dei selettori per restringere la ricerca nel DOM.
3. Ottimizzare i Cicli
I cicli sono spesso necessari ma possono diventare un collo di bottiglia se non gestiti correttamente:
Considera l'utilizzo di metodi nativi come `forEach`, `map`, `filter`, `reduce` per iterazioni più chiare e concise.
Evita calcoli inutili all'interno di cicli.
In cicli lunghi, valuta l'opportunità di utilizzare tecniche come il debouncing o il throttling.
4. Gestire le Funzioni con Attenzione
Le funzioni, soprattutto quando utilizzate come callback o in eventi, devono essere gestite con cura:
Evita la creazione di funzioni all'interno di cicli o altre funzioni se non strettamente necessario.
Usa la programmazione funzionale dove ha senso per ridurre gli effetti collaterali e migliorare la leggibilità.
5. Utilizzare Tecniche di Caching
Il caching può ridurre il tempo di elaborazione memorizzando i risultati di operazioni costose:
Memorizza in cache i risultati di calcoli pesanti, particolarmente in contesti di calcolo ricorsivo o iterativo.
Utilizza strutture dati efficienti per l'accesso e la memorizzazione dei dati.
6. Minimizzare il Codice e Utilizzare il Lazy Loading
Riduci la quantità di codice JavaScript che deve essere scaricato ed eseguito.
Usa il lazy loading per script e moduli che non sono immediatamente necessari.
7. Sfruttare le API del Browser
Le API native del browser, come Web Workers e IndexedDB, possono essere utilizzate per migliorare le prestazioni:
Usa Web Workers per eseguire calcoli pesanti in un thread separato.
Sfrutta IndexedDB per la memorizzazione efficiente di grandi quantità di dati lato client.
8. Prestare Attenzione alla Memoria
Gestisci correttamente l'utilizzo della memoria per evitare perdite di memoria (memory leaks):
Elimina gli oggetti, gli event listener e i dati non più necessari.
Sii consapevole del ciclo di vita degli oggetti e delle chiusure (closures) per evitare riferimenti indesiderati.
9. Test e Profiling del Codice
Utilizza strumenti di profiling e di debug per identificare colli di bottiglia nelle prestazioni.
Testa il codice in leti browser e ambienti per assicurarti che sia ottimizzato in modo uniforme.
Svisceriamo un po’ meglio questo ultimo punto nel capitolo a seguire.
14.2
Debugging e strumenti di profiling
Il debugging e il profiling sono aspetti fondamentali dello sviluppo di applicazioni JavaScript efficienti e prive di errori. Mentre il debugging si concentra sulla localizzazione e correzione dei bug, il profiling mira a identificare problemi di prestazioni e colli di bottiglia. In questo articolo, esploreremo gli strumenti e le tecniche che possono aiutarti a debuggare e profilare efficacemente il tuo codice JavaScript.
Strumenti di Debugging
Console del Browser:
Gli sviluppatori JavaScript fanno ampio uso della console dei browser moderni (Chrome, Firefox, Safari, Edge) per il debugging. La console permette di:
Stampare messaggi di debug con console.log(), console.warn(), console.error().
Esaminare e modificare l'HTML e il CSS nel DOM.
Visualizzare gli errori e gli avvisi.
Breakpoints:
I breakpoints sono fondamentali nel debugging. Possono essere impostati direttamente nei tool di sviluppo del browser. I breakpoints permettono di:
Fermare l'esecuzione del codice in punti specifici.
Esaminare lo stato delle letiabili.
Passare attraverso il codice passo dopo passo (step-by-step).
Strumenti Integrati nell'IDE:
Ambienti di sviluppo come Visual Studio Code, WebStorm, o Eclipse offrono funzionalità di debugging integrate, tra cui breakpoints, stack traces, e ispezione delle letiabili.
Network Tab:
Per debuggare richieste AJAX e problemi di performance legati al caricamento delle risorse, la scheda Network dei tool di sviluppo del browser è essenziale.
Strumenti di Profiling
Timeline e Performance Tabs:
I browser moderni includono pannelli per il profiling delle prestazioni che aiutano a identificare problemi come rallentamenti nel rendering, lunghe esecuzioni di script, e problemi di reflow/repaint.
Memory Profiling:
La scheda Memory nei tool di sviluppo del browser consente di identificare perdite di memoria (memory leaks) e problemi di gestione della memoria.
Profiler JavaScript:
Strumenti come il JavaScript Profiler in Chrome DevTools aiutano a identificare le funzioni che richiedono più tempo per l'esecuzione.
Lighthouse:
Uno strumento automatizzato integrato in Chrome, utile per migliorare la qualità delle pagine web, inclusi aspetti di prestazioni, accessibilità, pratiche consigliate e SEO.
Tecniche di Debugging e Profiling
Identificare il Problema: Determina se il problema è un bug (malfunzionamento o errore nel codice) o un problema di prestazione (lentezza nell'esecuzione).
Isolare il Problema: Usa tecniche come il "commenting out" del codice o la divisione del codice in blocchi più piccoli per isolare la sezione problematica.
Comprendere il Flusso di Esecuzione: Segui il flusso di esecuzione del tuo codice per comprendere dove e perché si verificano i problemi.
Analizzare i Dati di Performance: Esamina grafici e statistiche forniti dagli strumenti di profiling per identificare i colli di bottiglia.
Testare le Modifiche: Dopo aver apportato modifiche, testa il codice per assicurarti che il problema sia stato risolto e che non siano stati introdotti nuovi bug.
Risorse e strumenti utili per il successo nel debugging e profiling
In conclusione, il successo nel debugging e nel profiling di applicazioni JavaScript dipende dall'utilizzo degli strumenti giusti e dalla comprensione delle tecniche appropriate. Ecco una raccolta di risorse e strumenti utili che ogni sviluppatore JavaScript dovrebbe considerare:
Documentazione Ufficiale:
MDN Web Docs: Per approfondire JavaScript e le API del browser.
Google Developers: Per guide su Chrome DevTools.
Corsi e Tutorial Online:
Piattaforme come Udemy, Coursera, e freeCodeCamp offrono corsi dedicati a JavaScript, debugging e profiling.
YouTube ha molti tutorial gratuiti che coprono leti aspetti del debugging e profiling in JavaScript.
Comunità e Forum:
Stack Overflow: Un'ottima risorsa per ottenere risposte a domande specifiche.
Reddit e gruppi LinkedIn: Per consigli, discussioni e risorse condivise dalla comunità.
Il debugging e il profiling in JavaScript non sono solo compiti necessari ma anche opportunità di apprendimento. Mentre il debugging ti aiuta a comprendere meglio il tuo codice e a diventare un programmatore più efficace, il profiling ti permette di ottimizzare le prestazioni e migliorare l'esperienza utente. Sfruttando le risorse e gli strumenti disponibili, puoi trasformare il processo di debugging e profiling in un'esperienza arricchente e produttiva.
Ricorda, la chiave per un'efficace debugging e profiling è la pazienza, la sistematicità e la volontà di continuare ad apprendere. Con l'attitudine giusta e gli strumenti adeguati, sarai in grado di affrontare qualsiasi sfida di sviluppo JavaScript con fiducia e competenza.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.