onmouseout-fehler?
David
- javascript
Hallo nochmal,
hier ein Stück Quelltext:
<div id="m1.sub" class="menuPopup" onMouseOut="javascript:menuHidePopupAll();" style="position:absolute; left:25; width:150; display:none">
<div><a style="width:100%; font-size:10pt" href="about:blank">Punkt 1</a></div>
<div><a style="width:100%; font-size:10pt" href="about:blank">Punkt 2</a></div>
<hr>
<div><a style="width:100%; font-size:10pt" href="about:blank">Punkt 3</a></div>
</div>
Das Problem, daß ich damit habe ist, daß der onMouseOut-Befehl aufgerufen wird, sobald ich einen der Punkte mit der Maus 'berühre'. Eigentlich müsste onMouseOut doch nur aktiv werden, wenn ich das äußere DIV-Tag komplett verlasse?!
Bitte um baldige Antwort (gleich ist Feieramnd :).
Bye, David
Das Problem, daß ich damit habe ist, daß der onMouseOut-Befehl aufgerufen wird, sobald ich einen der Punkte mit der Maus 'berühre'. Eigentlich müsste onMouseOut doch nur aktiv werden, wenn ich das äußere DIV-Tag komplett verlasse?!
Hallo David,
In Javascript läuft alles über Objekte. D.h. wenn du auf einen "Punkt" gehst verlässt du das <div>-m1.sub und gehst in das <div> welches den einen "Punkt" einschließt. Dadurch wird in document.all.my.sub der event onmouseout ausgelöst und in document.all(x) (welches das eine <div> darstellen soll) der event onmouseover.
Die Lösung liegt darin, dass du um das my.sub <div> ein objekt legen mußt (ein großeres unsichtbares <div>) und ein onmouseover dessen zum schließen deines menüs nehmen mußt. Desweiteren mußt du noch window.event.cancelBubble = true; setzen, damit der event onmouseover nicht von dem umschließenden <div> in dein my.sub <div> fließt. Wenn du das nicht machen würdest, würde das Menü bei einem onmouseover des my.sub <div> zwar geöffnet, aber gleich von dem onmouseover des umschließenden <div>, welcher in der Hierarchie aufsteigen würde, geschlossen.
Mehr zu popupmenüs, steht in der Internet professionell 8/99. Wenn du dir das gesammte Objektmodell anschauen willst, kann ich dir den msdn-workshop unter http://msdn.microsoft.com/workshop/c-frame.htm#/workshop/author/default.asp empfehlen.
Viel Spass beim ausprobieren
Alexander Kiel