Captain's Universe Home
Captain's Universe Home
Cosmic Ray Muon DetectorTeleGarden Pages
Time on MarsBryophyllum Plants
Jupiter Radio AstronomyAncient Pages
Salzburg Tourist GuideEarth Magnetometer
  H O M E     AJAX & MORE     LINUX & MORE     RTAI     XENOMAI     ADEOS IPIPE      
    JAVA & BROWSERS     *NIX     ELECTRONICS     REVIEWS     ARTEMIA     FAIRY SHRIMP      



addEventListener attachEvent - Pass parameters to event-function

If you manipulate a DOM object's events with addEventListener (Mozilla, Firefox) or attachEvent (Internet Explorer), you can't pass parameters to the event function.


But you can get information of the object where the event occured. E.g. you can do stuff dependent on the "id" of an object, or you can set any additional flags within the object and do stuff dependent on these flags.

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".

Last-Modified: Wed, 05 Jul 2006 18:29:04 GMT

Google
 
Web www.captain.at
go to top
© 1996-2010 . All rights reserved.
No reproduction, distribution, publishing or transmission of the copyrighted materials at this site is permitted. Policy
go to top