Guten Abend allerseits,
ich habe folgendes Problem:
Ich habe einen DIV-Container, welcher eine Tabelle beinhaltet.
Gebe ich dem Div nun einen onmouseout-Eventhandler, so wird
dieser nicht nur dann aufgerufen, wenn das Div-Element mit der
Maus verlassen wird, sondern auch dann, wenn der Mauszeiger
sich in der Tabelle bewegt. Ich vermute, dass es genau dann
geschieht, wenn der Mauszeiger von einer Zeile der Tabelle zur
anderen uebergeht.Kennt einer von euch diese Verhalten? Wenn ja, wie kann ich
das umgehen?Besten Dank fuer eure Tipps.
Mario
Ja ich kenne das Verhalten auch.
Ideen:
1. Das mouseout event für den Table canceln. (cancelBubble und stopPropagation), so dass es nicht bis zum DIV runterdringt.
2. mit setTimeout arbeiten. es triggert natürlich nicht nur das onmouseout event, sondern auch das onmouseover.
beim onmouseout stößt du einen timer an, wo schon 0 ms reichen, glaub ich. beim onmouseover clearst du den (clearTimeout). Bewegst du dich also innerhalb des DIV in childElementn (table, td, ...) wird ständig ein onmouseout aufgerufen, kurz danach ein onmouseover. Erst wenn du das DIV "wirklich" verlässt. Gibt es kein onmouseover mehr, und die Funktion die du du durch onmouseout angestoßen wird ausgeführt.
Und das geht so schnell, das merkt man nicht... wie gesagt, 0ms in window.setTimeout angeben, sollte schon reichen...
So hab ich es mal gelöst mit erfolg...
Gruß