Gestione degli eventi in javascript: una soluzione "cross browser"
Quando si realizza una applicazione web basandosi su JQuery, gli eventi vengono gestiti utilizzando i metodi bind(), unbind(), on() e off(), che permettono di collegarli e scollegarli agevolmente dagli elementi del DOM.
In quei rari casi in cui non si può/vuole utilizzare JQuery nasce la necessità di gestire gli eventi con del codice hand-made.
A questo punto sorgono problemi riguardanti la compatibilità: mentre la maggior parte dei browsers utilizza per collegare gli eventi i metodi addEventListener() and removeEventListener(), Internet Explorer 8 (ovviamente :-P) e successivi utilizzano invece attachEvent() e detachEvent().
La soluzione migliore è quindi scrivere un gestore degli eventi che permetta una compatibilità cross-browser:
L'utilizzo è semplice: EventHandler.bind(ELEMENTO, EVENTO, FUNZIONE) per effettuare l'attach di un evento, EventHandler.unbind(ELEMENTO, EVENTO, FUNZIONE) per il detach e EventHandler.stop(EVENTO) per fermare la propagazione dell'evento.
via Cross Browser Event Handling in JavaScript | Anuj Gakhar
In quei rari casi in cui non si può/vuole utilizzare JQuery nasce la necessità di gestire gli eventi con del codice hand-made.
A questo punto sorgono problemi riguardanti la compatibilità: mentre la maggior parte dei browsers utilizza per collegare gli eventi i metodi addEventListener() and removeEventListener(), Internet Explorer 8 (ovviamente :-P) e successivi utilizzano invece attachEvent() e detachEvent().
La soluzione migliore è quindi scrivere un gestore degli eventi che permetta una compatibilità cross-browser:
L'utilizzo è semplice: EventHandler.bind(ELEMENTO, EVENTO, FUNZIONE) per effettuare l'attach di un evento, EventHandler.unbind(ELEMENTO, EVENTO, FUNZIONE) per il detach e EventHandler.stop(EVENTO) per fermare la propagazione dell'evento.
via Cross Browser Event Handling in JavaScript | Anuj Gakhar