Frage zu Pulldownmenüscript
David Hörpel
- javascript
0 Gerhard Knabe0 KD-one
Hallo!
Unter folgendem Link http://www.spicken.de/latin/Entwicklung/Untitled-1.htmhttp://www.spicken.de/latin/Entwicklung/Untitled-1.htm [/link]könnt ihr ein Pulldownmenü sehen, an dem ich gerade arbeite. Leider verschwinden die div-Boxen, bevor ich mit onmouseout den Befehl dazu gegeben habe. Die div-Box soll erst verschwinden, wenn mann sich auf der aktuellen div-Box nicht mehr befindet. Der Quelltext, den Javascript ausgbibt, ist in mehreren alert-Fenstern, die automatisch erscheinen, zu sehen (Man brauch sich aber nur das 1. Alert-fenster anschauen, da diese von der Struktur gleich sind). Kann mir einer weiterhelfen? danke!
Ich würde sagen, Du machst die DIV Boxen zu, sobald Du aus dem Menü heraus bist. Das ist ja wohl nicht gewünscht, denn so hast Du gar keine Möglichkeit, in die DIV Boxen hereinzufahren. Du bekommst ja ein onmouseout für die Menüs, sobald du versuchst, in die DIV Boxen zu fahren, die dann natürlich zu gehen.
Eine Lösung ist ein verzägertes Schließen der DIV Boxen mittels setTimeout. Damit kannst Du dem Benutzer Zeit geben, aus den Menüs in die DIV Boxen zu fahren. Im onmouseover der DIV Boxen setzt Du dann den Zeitgeber zurück, damit er nicht zuschlägt, wenn der Benutzer in die DIV Boxen gefahren ist. Gleichzeitig schließt Du im onmouseover eines jeden Menüs noch die DIV-Box eines anderen ggf. offenen Menüs.
MfG
GK
Hallo,
Ja, ich habe bei meinem Menü dieselbe Lösung wie von Gerhard Knabe vorgeschlagen, realisiert.
Wenn du allerdings über mehrere Ebenen gehen willst, musst du den Timeout mit Timern realisieren, da du dir sonst den Timeout immer wieder überschreibst. Der Timeout ist auch wegen der Events nötig, falls du in den Divs mit Tabellen arbeitest, da diese den unangenehmen Effekt haben beim Verlassen und betreten der Zellen auch zu feuern, selbst wenn das Div nicht verlassen wird. Das führt im Regelfall zu einem unangenehmen Flackern des Menüs bei fast jeder Mausbewegung. Ich hatte damals zugegebenermaßen von Antje Hofmann äusserst kompetente Unterstützung, als es an den Timeouts scheiterte.
Warum du allerdings mit Layer/Ilayer arbeitest, ist mir schleierhaft. Einerseits bedienst du damit nur Netscape bis 4.*, andererseits bin ich mir nicht sicher, ob er überhaupt die Syntax deiner Events versteht.
Internet Explorer sowie Firebird können mit deiner Syntax nichts anfangen und weigern sich, irgendwas auszuführen.
Gruß
Kurt