La delegazione di eventi

Scritto il 16 Agosto 2007
Nella categoria Guide, Javascript
Tag: , ,

 

La delegazione di eventi è una tecnica Javascript/DOM che ho trovato utile in alcune occasioni, si tratta di non controllare ogni singolo nodo di cui ci interessa un evento, e monitorarne un altro nodo più in alto nella radice DOM.

Un esempio per chiarire: abbiamo una serie di campi input testuali, vogliamo controllare il cambiamento di tutti quanti; classicamente dovremmo attaccare un EventListener ad ognuno di essi (oppure aggiungere una proprietà onChange o simile). Beh invece si può attaccare un solo EventListener ad un elemento che contiene tutti i campi (come l’elemento “form” ad esempio).

Questo è possibile perché gli eventi si trasmettono attraverso l’albero dei nodi, per maggiori informazioni a proposito (ma diventa piuttosto tecnico), si trovano sulla documentazione ufficiale DOM, sezione Eventi.

Potrebbe però diventare utile, a questo punto, scoprire qual’è l’elemento che ha generato l’evento, perché this farà riferimento al nodo a cui abbiamo aggiunto l’EventListener, non al campo testuale. Tra le proprietà dell’evento infatti c’è target oppure srcElement, dipende dal browser. Per essere sicuro che funzioni, io utilizzo il seguente codice: var element = e.target || e.srcElement;

[via HTML]

Ti potrebbe interessare...

Commenti

Scrivi un commento

Se vuoi.

Nome (obbligatorio)

E-mail (obbligatorio)

Sito web

Commenti