... in der addevent.js Datei beschriebene Weg ist eher umständlich, es sollte auch einfacher gehen).
Ich hab das mal mit dem von Peter beschriebenen Weg umgesetzt, das geht doch einfacher:
var addEvent = function(el, evt, func) {
var oldEvt = el[evt];
el[evt] = function(e) {
func(e);
if(oldEvt)oldEvt(e);
};
}
var NodeFunctor = function () {
this.addEvent = function (evt, func) {
return addEvent(this, evt, func);
};
};
window.onload = function() {
var el = document.getElementById('test');
NodeFunctor.call(el);
el.addEvent('onclick', function(e) {alert(e)});
el.addEvent('onclick', function(e) {alert('2. Klickevent')});
}
getestet im FF 2.0 und IE 7.
Was aber bleibt ist das in den Artikeln beschriebene Problem mit dem "memory leak" im IE. Der Punkt dabei ist, dass du die in addEvent() Funktion erzeugten Funktionsreferenzen vermutlich wieder von Hand löschen musst, da der IE das nicht von alleine macht. (ich kann aber auch falsch liegen, da ich mich damit noch nicht genau auseinandergesetzt habe)
Struppi.