Navigationsproblem
Karl
- javascript
0 Der Martin0 Karl
Hi.
Ich lasse in meiner Navigation per Klick einen Navigationskasten ein/ausblenden. Bei onBlur also beim verlassen des Links, wird der Kasten wieder ausgeblendet.
So nun aber folgendes Problem. Sobald ich in dem Kasten auf einen Link klicke, wird das onBlur angewendet, sprich der Kasten wird ausgeblendet und dem Link _nicht_ gefolgt.
Was kann ich dagegen tun?
Also Pseudo sieht das so aus:
<a href="javascript:;" onclick="showWhenHiddenAndHideWhenShown('kasten');return false;" onBlur="Hide('kasten');return fals">Klick</a>
<div id='kasten'><a href='/einlink/'>Ein Link</a></div>
bei showWhenHiddenAndHideWhenShown wird das style attribut display überprüft. Falls es "none" ist dann wird es auf "block" gestellt und umgekehrt. Hide hingegen stellt es einfach auf "none".
Ich hoffe ihr versteht was ich meine.
Viele Grüße,
Karl
Moin,
Ich lasse in meiner Navigation per Klick einen Navigationskasten ein/ausblenden. Bei onBlur also beim verlassen des Links, wird der Kasten wieder ausgeblendet.
So nun aber folgendes Problem. Sobald ich in dem Kasten auf einen Link klicke, wird das onBlur angewendet, sprich der Kasten wird ausgeblendet und dem Link _nicht_ gefolgt.
das Konzept *kann* nicht aufgehen, wie mir aus deinem Codeauszug klar wird:
<a href="javascript:;" onclick="showWhenHiddenAndHideWhenShown('kasten');return false;" onBlur="Hide('kasten');return fals">Klick</a>
<div id='kasten'><a href='/einlink/'>Ein Link</a></div>
Wenn du auf den Link im div#kasten klickst, passiert folgendes:
1. Erst verliert der ink mit den JS-Eventhandlern den Focus
2. Dann erhält der Link im div#kasten den Focus
3. Und dann erst wird die aktion des Links ausgelöst
In Schritt 1 feuert nun aber schon dein blur-Event. Der Kasten wird also ausgeblendet; in dem Moment, wenn der Klick an der Stelle "bearbeitet" wird, ist der Kasten mit dem Link schon nicht mehr da.
> Ich hoffe ihr versteht was ich meine.
Ja. Überdenke und korrigiere dein Konzept[1]. Es enthält einen Widerspruch.
So long,
Martin
[1] Zum Beispiel, indem du die Reaktion auf das blur-Event etwas [verzögerst](http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout).
--
Einer aktuellen Erhebung zufolge sind zehn von neun Ehefrauen eifersüchtig auf ihren Mann.
Hallo Martin.
Das Problem ist mir doch schon längst bewusst.
Ich suche ja nach Lösungsvorschlägen.
Das mit dem verzögern klappt nicht wirklich und halt eich für eine nicht so optimale Lösung.
Wenn ihr auf Google.de geht und dort auf "Mehr" klickt. genau das will ich haben. Ich klicke auf "Mehr" und der Kasten erscheint. Wenn ich irgendwo anders hinklicke verschwindet es wieder.
Mein nächster Versuch war das ich den Focus auf den Kasten lege.
Aber focus() geht ja nur auf: Klick-Buttons, Checkboxen, Felder für Datei-Upload, Versteckte Elemente, Passwortfelder, Radio-Buttons, Abbrechen-Buttons, Absendebuttons, einzeilige Eingabefelder, mehrzeilige Eingabefelder, Auswahllisten
=/