Sebastian Wolf: Aufklappmenü mit Netscape 4.x

Grüße an alle ForumsteilnehmerInnen!

Ich habe Euch gestern schon mal mit einem ähnlichen Problem belastet. Jedoch stecke ich gerade an einem ziemlich nervigen Punkt fest.

Geplant ist, für Netscape (für IE funktioniert es schon) ein Aufklappmenü zu kreieren, das über Javascript-Funktionen und DIVs gesteuert wird.

Ziel ist es, nur eine HTML-Datei zu programmieren, in der dann alle Links für die Navigation enthalten sind. Jedoch sollen die Unterpunkte der Rubrik bei Klick auf eben jene erscheinen und bei nochmaligem Klick wieder verschwinden.

Das mit dem visibility-Attribut zu machen funktioniert nicht wie gewünscht. (Hätte ich auch früher merken können) Ich habe deshalb versucht, das ganze über das CSS2-Attribut "display:none" zu realisieren (unten steht der Quelltext), jedoch meldet mir Netscape folgenden JavaScript-Fehler:

document.layers[divid] has no properties

Das Ganze kommt mir ziemlich komisch vor, da ich eben das display:none als Attribut definiert habe. Laut Milch und Zucker kann ich die DIV-Tags nämlich via document.layers ansprechen und SelfHTML meint, daß ich diese Attribute mit Dynamischem HTML ändern kann...

Also, was mache ich falsch?

Danke im voraus für Eure Hilfe

Sebastian

--------------------------QUELLTEXT----------------------------------
<html>
<head>
<title>Aufklappmenue</title>
<meta name="author" content="Sebastian J. Wolf">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">

<script language="JavaScript">

function DIVzeigen(divid)
{
 if
 (document.layers[divid].display == "none")

{
      document.layers[divid].display = ""
      }

else document.layers[divid].display ="none"

}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#000000" alink="#000000" vlink="#000000">
<div id="NormalerText"><a href="javascript:DIVzeigen('VersteckterText')">Normaler Text</a></div><br>
<div id="VersteckterText" style="display:none">Versteckter Text</div>
</body>
</html>

  1. Moinmoin

    Das mit dem visibility-Attribut zu machen funktioniert nicht wie gewünscht. (Hätte ich auch früher merken können) Ich habe deshalb versucht, das ganze über das CSS2-Attribut "display:none" zu realisieren (unten steht der Quelltext), jedoch meldet mir Netscape folgenden JavaScript-Fehler:

    Hm. Eigentlich sollte er das schon kennen. Überlicherweise würde ich aber lieber bla.visibility = "show" / "hide"; verwenden

    (document.layers[divid].display == "none")
    <a href="javascript:DIVzeigen('VersteckterText')">Normaler Text</a>

    Da is die Sau. Hinter layers wird eine Zahl erwartet. Du übergibst aber einen Text.

    Entweder: document[divid].display = bla;
    oder "javascript:DIVzeigen(ZAHL);" (ZAHL=Indexnummer des Layers, von 0 an beginnend).

    Mein Tip: Entweder ist klar besser als oder ;-)

    Cya,

    Harry