Du musst also das target des Events abfragen, und darauf passend reagieren.
Framworks wie jQuery bieten dafür übrigens eigene Events namens [...]
function hidemenu()
{
var trgr=window.event.target; /* has triggered the event */
var ntype=trgr.nodeName;
while (ntype!="DIV" & ntype!="BODY") /* search above "body" */
{ /* is quite pointless */
trgr=trgr.parentNode;
ntype=trgr.nodeName;
}
if (ntype="DIV")
{
if (trgr.getAttribute("id")=="grpB")
document.getElementById("grpB").style.visibility="hidden";
else
window.event.stopPropagate();
}
}
Nach einiger Pfriemelei ist obiges herausgekommen. Schon beim Rumtesten mit parentNode und Co. wurde ersichtlich, dass der Handler zweimal aufgerufen wird, wenn GruppeB sichtbar ist.
Deshalb habe ich mal das stopPropagate() eingebunden, das ich während der Event-Bubbles-Recherche aufgeschnappt habe... Der Effekt bleibt der gleiche. Was übersehe ich da?
Nochmal danke :-)
PS: dass ich mir den getEleme*-Aufruf hier sparen könnte, ist mir schon klar ;-)