Here we have the code for attaching the events:
if(window.addEventListener){ // Mozilla, Netscape, Firefox object.addEventListener('mouseover', testevent, false); object.addEventListener('click', testevent, false); object.myflag = "test"; object.mydata = "123"; } else { // IE object.attachEvent('onmouseover', testevent); object.attachEvent('onclick', testevent); object.myflag = "test"; object.mydata = "123"; }
The function "testevent" contains all code to access the "id", "name" etc. and all own flags:
function testevent(evt){ var e_out; var ie_var = "srcElement"; var moz_var = "target"; var prop_var = "myflag"; // "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var]; alert(e_out); prop_var = "mydata"; evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var]; alert(e_out); }
Conclusion: If you set appropriate flags when attaching an event to an object, you have the possiblity to do actions dependent on these flag when the actual event occurs.
Therefore it is not necessary to pass parameters directly when attaching the event, since those parameters either do not change anyway, or if the parameters are dynamically created, those dynamic parameters can be read out in the function "testevent".