• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit Menüerstellung

7bkahnt

Neues Mitglied
Hallo Leute,
ich versuche ein normales Menü zu basteln mit Datei,.......
Datei soll aufklappen, wenn ich draufklicke und automatisch zu gehen wenn ich beispielsweise auf Bearbeiten klicke. Wie ein normales Menü halt.
Das hab ich mit onblur hinbekommen. Das Problem was ich jetzt habe, ist nun aber, dass wenn ich Datei klicke und dann etwas auswählen will, das auswählen nicht funktioniert, da eben onblur sofort greift.

Hier mal das Bild zum Menü:
http://www.abload.de/image.php?img=mensfuu.jpg

Hier ist der Code dazu:
HTML:
function menue(identifier) {
 var element = document.getElementById(identifier);
 if (element.style.display == "block") {
  element.style.display = "none";
 } else {
  element.style.display = "block";
 }
}


function menue2(identifier) {
var element=document.getElementById(identifier);
element.style.display="none";
}
</script>
</head>

<body>

 <table border=0px align="center" width="100%">
 <tr >
 <td>
  <ul id="Navigation">
  
  <!-- Datei-->
    <li><a href="#" onclick="menue('a');return false;" onblur="menue2('a');return false;" href="#Beispiel"  >Datei</a>
    <ul id="a">
    <li><a id="datei"     href="#Beispiel">PWD setzen</a></li>
    <li><a id="datei"     href="hilfe.html">Hilfe</a></li>
    <li><a id="datei"     href="index.html">Beenden</a></li>
    </ul>
    </li>

Die id "a" ist in der css festgelegt mit display=none; festgelegt, sodass das Untermenü am Anfang ausgeblendet ist.
Immer wenn ich auf etwas anderes als auf "Datei klicke" schließt sich das Untermenü also. Das Problem ist eben, wenn ich im Untermenü auf "Hilfe" klicke, schließt sich ebenfalls das Untermenü, was ja eigentlich auch gut ist, aber es wird eben nicht auf die Seite verlinkt, welche unter "Hilfe" angegeben ist.
Ordnergeschichten können es nicht sein, da wenn ich onblur rausnehme, alles wunderbar funktioniert. Nur dann bleiben eben immer die Untermenüs offen bis ich wiederholt z.B. auf Datei klicke.

Es wäre ideal, wenn mir jemand helfen könnte.
 
Zuletzt bearbeitet von einem Moderator:
Hallo.

Du solltest dein Menü mit HTML und CSS erstellen anstatt mit javascript.
Du willst doch bestimmt das alle Besucher dein Menü benutzen können.

Such mal nach CSS Dropdown Menü, dann brauchst du auch keine Tabellen mehr.

Gruss
Elroy
 
Mindestens der IE6 unterstützt die :hover-Pseudoklasse nur für das a-Element, was reine CSS-Lösungen problematisch macht. Die beste Lösung ist es, eine Version der Seite zu erstellen, die ohne JavaScript funktioniert, und das User Interface beim Laden der Seite durch JavaScript (sofern vorhanden) entsprechend aufzumotzen.

Edit: @7bkahnt: Bitte poste nach Möglichkeit vollständige Beispiele, die sich per copy & paste testen lassen.

Das ist jetzt halb geraten (hatte keine Lust mehr, es zu probieren): Das Problem könnte Event Bubbling sein (JavaScript: 9.6 Event-Bubbling). Ein Klick auf einen Link des Untermenüs löst auch onclick hier aus:

Code:
<li><a href="#" onclick="menue('a');return false;" onblur="menue2('a');return false;" href="#Beispiel"  >Datei</a>

Das führt zu return false;, also dem Abbruch der Änderung der URL. Ich denke, ein onclick-Handler für die a-Elemente des Untermenüs wird das Problem lösen, wenn du dort event.stopPropagation(); aufruft und eventuell noch true zurückgibst.

Mehr dazu: Javascript - Event order


Edit 2: Pardon, das war wohl Unsinn, da die a-Elemente des Untermenüs nicht in das übergeordnete a-Element geschachtelt sind.
 
Zuletzt bearbeitet:
Zurück
Oben