Archivlink: javarea.de Forum > JavaScript > onmouseout auf element mit id
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > onmouseout auf element mit id

Pages: [1]

geschrieben von Eppi am 17.03.2006 - 16:20
hallo,

ich möchte gerne auf ein div, welches eine id hat und jede menge inhalt eine mouseout funktion setzen. natürlich könnte ich direkt in's html onmouseout schreiben - dies ist für mich aber leider nicht so sinnvoll, da ich noch wietere aktionen innerhalb des elements abfange und abarbeite. daher muß es so definiert werden:
this.dedi_pop.onmouseout = function(e) {
}

meine funktion sieht aktuell so aus:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
this.dedi_pop = document.getElementById('dedi_pop');
this.dedi_pop.onmouseout = function(e) {
	e = e||window.event;
	var e = e.target || e.srcElement;
	if (e.className == 'menurow') e.id = '';
	else {
		while (e.id != 'dedi_pop') {
			e = document.getElementById ? e.parentNode : e.parentElement;
			if (e.className == 'menurow') e.id = '';
		}
	}
}


nun möchte ich gerne noch abfangen, das wenn ich das div this.dedi_pop verlasse dieses ausgeblendet wird. momentan finde ich aber noch keine lösung dafür :-( ich hoffe, ihr könnt mir wieder weiterhelfen!

gruß, paul

geschrieben von Eppi am 18.03.2006 - 11:45
ok, ich hab's selber gefunden :-)

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
this.dedi_pop.onmouseout = function(e) {
	e = e||window.event;
	if (document.all && !document.getElementById('dedi_pop').contains(e.toElement)) delayhide = setTimeout("this.hide('dedi_pop')", 200);
	else if (!document.all && e.currentTarget != e.relatedTarget && !_contains(e.currentTarget, e.relatedTarget)) delayhide = setTimeout("this.hide('dedi_pop')", 200);
	var e = e.target || e.srcElement;
	if (e.className == 'menurow') e.id = '';
	else {
		while (e.id != 'dedi_pop') {
			e = document.getElementById ? e.parentNode : e.parentElement;
			if (e.className == 'menurow') e.id = '';
		}
	}
}
function _contains(a, b) {
	while (b && b.parentNode && b.parentNode != "undefined") if ((b = b.parentNode) == a) return true;
	return false;
}



Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.