EKKi: Vertikales Menü mit JavaScript

Beitrag lesen

Mahlzeit Thomas Gellenbeck,

folgendes wollte ich Dir auf Dein Doppelposting zu diesem Thread antworten - allerdings wurde der Beitrag mittlerweile gesperrt, so dass ich meine Antwort nun hier unterbringe.

BTW: Siehst Du dadurch ein, wie sinnlos und nervend Doppelpostings sind?

  1. sollte beim anklicken eines Sub der Verzeichnisbaum nicht ausgeblendet werden.

Wird er das denn?

  1. sollte beim öffnen des Verzeichnisbaums mit Unterverzeichnissen (Main 22) diese nicht eingeblendet sein, sondern erst eingeblendet werden, wenn dort angeklickt wird.

Du holst Dir in Deiner Funktion mShow() *alle* <li>, die sich unterhalb des angeklickten <li> befinden. Du müsstest Dich auf die <li> beschränken, die sich in einem <ul> *direkt* eine Hierarchieebene unterhalb des angeklickten <li> befinden - keine Enkel, Urenkel oder sonstige Nachkommen!

  1. sollte bei geöffnetem Verzeichnisbaum dieser ausgeblendet werden, wenn ein anderer Hauptmenüpunkt (Main) angeklickt wird.

Dann ruf doch einfach am Anfang der Funktion mShow() einfach die Funktion hideSub() auf - die sollte doch alle Unterpunkte aller Menüpunkte "schließen" (wenn ich sie richtig verstanden habe)?

  1. sollte jeder Hauptmenüpunkt (Main 1, 2, 22) mit einem Link zu einer HTML-Seite versehen werden, mit a href ist dies nicht möglich.

Warum nicht? Du könntest z.B. alle Menüpunkte (d.h. <li>-Elemente), die direkt auf eine andere Seite verweisen sollen, mit einem Link ausstatten. Dieser Link bekommt ein "href"-Attribut, das auf die gewünschte Zielseite verweist, und ein "onclick"-Attribut, das mittels eines Funktionsaufrufs folgende Prüfung bewirkt:

  • Wenn der Menüpunkt keine Unterpunkte besitzt, gibt die Funktion true zurück, d.h. dem Link wird gefolgt.

  • Wenn der Menüpunkt Unterpunkte besitzt und diese nicht eingeblendet sind, werden sie eingeblendet und die Funktion gibt false zurück, d.h. dem Link wird nicht gefolgt.

  • Wenn der Menüpunkt Unterpunkte besitze und diese bereits eingeblendet sind, gibt die Funktion true zurück, d.h. dem Link wird gefolgt.

<html>
<head>

Es fehlt die Angabe eines http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp@title=Dokumenttyps.

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

Wenn Du sowieso gerade beim (Neu-)Aufbau der Seiten bist, verwende doch sinnvollerweise von Anfang an UTF-8.

<style type="text/css" media="screen">
<!--

Es ist nicht sinnvoll, CSS mittels HTML-Kommentaren auszublenden.

<script type="text/javascript">
<!--

Es ist auch nicht sinnvoll, Javascript mittels HTML-Kommentaren auszublenden.

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|