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
Gestire i dati con Azure Cosmos DB Data Explorer
Montare Azure Blob Storage su Linux con BlobFuse2
.NET Conference Italia 2024
Creare una libreria CSS universale - Rotazione degli elementi
Loggare le query più lente con Entity Framework
Migliorare l'organizzazione delle risorse con Azure Policy
Gestione dell'annidamento delle regole dei layer in CSS
Generare una User Delegation SAS in .NET per Azure Blob Storage
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
.NET Aspire per applicazioni distribuite
La gestione della riconnessione al server di Blazor in .NET 9
Gestione degli eventi nei Web component HTML
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- The Agentic Day - Milano
- Usare jQuery DatePicker all'interno di un UpdatePanel di ASP.NET
- Cambiare le impostazioni internazionali con VBScript 5.x
- Utilizzare una checkbox come colonna di un DataGrid
- .NET Conference Italia 2025 - Milano