Per gestire un'interazione utente in JavaScript, abbiamo bisogno di metterci in ascolto di eventi. Sottoscrivendoci al click di un bottone si possono eseguire varie funzionalità; stesso discorso se prendiamo in esame un input in cui dobbiamo inserire del testo o il click all'interno di un'area della pagina.
Ogni evento ha però un peso: più eventi vi sono sulla pagina, più essa risulterà lenta a causa dell'utilizzo di memoria. Inoltre gli eventi non supportano la dinamicità dei componenti all'interno del DOM: se creassimo un evento basato sulla classe .mio-div, ed aggiungessimo a posteriori un nuovo elemento, con la medesima classe, l'evento non sarà automaticamente collegato all'elemento appena inserito.
Per risolvere questi problemi possiamo collegare l'evento al contenitore, ossia al posto di collegarlo al singolo elemento, lo colleghiamo all'elemento padre, gestendo poi all'interno le varie casistiche. Questo ridurrà il numero di eventi che la pagina dovrà gestire, accentrerà il codice in pochi punti manutenibili e gestirà anche gli eventi sulle parti di pagina aggiunte successivamente alla dichiarazione.
const container = document.querySelector('.container'); container.addEventListener('click', function(event) { // gestione evento click per classe mio-div if (event.target.classList.contains('.mio-div')) { console.log('Click mio-div'); } // gestione evento click per classe altro-div if (event.target.classList.contains('.altro-div')) { console.log('Click altro-div'); } });
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Utilizzare Azure Cosmos DB con i vettori
Ordine e importanza per @layer in CSS
Utilizzare QuickGrid di Blazor con Entity Framework
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Limitare le richieste lato server con l'interactive routing di Blazor 8
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
.NET Conference Italia 2024
Miglioramenti nelle performance di Angular 16
Criptare la comunicazione con mTLS in Azure Container Apps
Eseguire operazioni sui blob con Azure Storage Actions
I più letti di oggi
- Organizzare il codice JavaScript utilizzando i moduli
- Utilizzare Azure Cosmos DB con i vettori
- Comunicazione bidirezionale con WebSockets e HTML5
- Recuperare i file utilizzati di recente in un'Universal App
- Gestione avanzata delle Progress Bar con Bootstrap
- Conoscere quando una periferica viene collegata nelle Universal App
- Disponibile Internet Explorer 10 Platform Preview 2 (IE10 PP2): ancora più supporto ad HTML5
- I nuovi tag figure e figcaption in HTML5
- Utilizzare il microfono nelle applicazioni Windows Phone