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