addEvent = function(el, etype) { el['$_'+etype] = el[etype] || []; el['on'+etype] = handleEvent; for(var i = 2; i < arguments.length; i++) el[etype].push(arguments[i]); }; handleEvent = function(evt) { evt = evt || window.event; evt.srcElement = evt.srcElement || evt.target; var arr = evt.srcElement['$_'+evt.type]; for(var i = 0; i < arr.length; i++) { switch(arr[i].constructor) { case Function: arr[i](evt); break; case String: eval(arr[i]); } } };