DIV Layer ein und ausblenden in einer JavaScript F

Hallo Leute,

ich möchte für meine Website eine eigene Navigation mittels DIV Layern und DIV SubLayern bauen. Soweit so gut. Dafür habe ich zwei Funktionen geschrieben die getrennt den DIV Layer ein bzw. ausblenden können. Dies funktioniert so schon recht gut. Nur möchte ich beide aktionen in einer Funktion zusammen fassen. Auch möchte ich mit der Funktion mehrere DIV SubLayer ansprechen.

Die Datei sieht bis jetzt so aus.

.......

\<!--
function visibilityChanger (a) 
{
 //alert(a); // Testausgabe
 var x = a; 
 //alert( x ); // Testausgabe

 if (document.getElementById('a').style.visibility == visible) 
 {
 //alert(visible); // Testausgabe
 document.getElementById('a').style.visibility = "hidden"; 
 }
 else 
 {
 //alert(hidden); // Testausgabe
 document.getElementById('a').style.visibility = "visible"; 
 }
}
//--\>

.....





[Produkte](javascript:visibilityChanger('Sublayer1'))


 &nbsp;
  • Link

Die Firefox Fehlerkonsole sagt mir das document.getElementById(‚a‘) has no properties.

Der Internet Explorer 7 meldet einen Laufzeitfehler, Objekt erforderlich. Das hilft mir alles nicht viel weiter. Und Googeln und Forensuche haben mir bis jetzt auch nichts brauchbares gebracht.

Ich will der Funktion nur sagen welchen SubLayer sie bearbeiten soll. Die Funktion soll dann testen ob der SubLayer sichtbar ist oder nicht um dann den SubLayer ein oder auszublenden.

Ich sitze da jetzt schon 2 Tage dran und krige es nicht hin. Vielleicht bin ich ja mit Blindheit/Blödheit geschlagen? . Ich weiss das ich der Funktion eine Zeichenkette übergeben muss. Aber die Variable scheint unbestimmt zu sein. Wieso nur???

Wie müsste diese Übergabe denn aussehen, und was in 3 Teufels Namen mache ich da seit zwei Tagen falsch? Benutze ich einzelfunktionen klappt alles. Aber da übergebe ich auch keine Werte.

Auch frage ich mich ob ich die Funktion einfach in eine JavaScript Datei auslagern kann oder ob das hier nicht funktionieren wird.

Es wäre echt cool wenn jemand von euch mir da ein paar Ratschläge geben könnte wie dieses auszusehen hätte.

Mit freundlichem Gruß euer

hdj-lange

Hi Hans-Dieter,

Du machst document.getElementById(‚a‘); - das, was Du meinst, ist augenscheinlich document.getElementById(a);. Es gibt ja kein Element mit id=„a“…

Auslagern des Skripts sollte kein Problem sein.

Ciao
Rudy

Herzlichen Dank

jetzt funzt es endlich.

Übrigens ich habe mir extra alle möglichen Browser installiert zum testen.

(IE 7, Opera, Firefox, Netscape 9, WinWap 3, Safari) Was hälst Du dafon und meinst Du ich habe einen wichtigen vergessen?.

Mit vielem Dank dein

hdj-lange

Herzlichen Dank

jetzt funzt es endlich.

Übrigens ich habe mir extra alle möglichen Browser installiert
zum testen.

(IE 7, Opera, Firefox, Netscape 9, WinWap 3, Safari) Was hälst
Du dafon und meinst Du ich habe einen wichtigen vergessen?.

Allgemein halte ich es für gut, auf mehreren Browsern zu testen, allerdings beschränke ich mich auf IE6, IE7, Firefox, Opera und Safari. WinWap kenn ich nicht, Netscape hat die gleiche Engine wie Fx und verschwindet eh bald von der Bildfläche.

Eine Version von IE6, die neben IE7 läuft, bekommst du auf http://browsers.evolt.org/?ie/32bit/standalone (ie6eolas_nt.zip) - einfach in einen Ordner entpacken und starten.

Aber die einfache JS-Anwendung wie Du sie in dem Skript geschrieben hast, dürfte überall funktionieren. Haarig wirds meist bei komplizierteren Dingen. Um es einfach zu haben, würde ich zu jquery raten, da sind browserspezifische Macken bereits einkalkuliert und brauchen Dich nicht kümmern: http://jquery.com

Ciao
Rudy