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*