Reiner Wirth: Ich komm im Moment nicht weiter

Hallo,

ich möchte ein Javascript verwenden, um Ebenen zu vertauschen, in einem kleinen  Beispiel sieht das so aus:

<html><head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8">

<script language="JavaScript1.2" name="Ebene rauf"><!--
   var zTop=0;
   function topLifter(idEbene)
   {
   zTop=zTop+1;
     document.getElementById(idEbene).style.zIndex=zTop;
   }
//-->
</script>

</head>
 <body onload="CSScriptInit();"  bgcolor="#ffeecc">
  <div style="background-color: #cccccc; visibility: visible; display: block; position: absolute; z-index: 1; top: 110px; left: 50px; width: 100px; height: 100px;" id="ebene1" onmouseover="topLifter('ebene1')"></div>
  <div style="background-color: #888; visibility: visible; display: block; position: absolute; z-index: 2; top: 80px; left: 90px; width: 100px; height: 100px;" id="ebene2" onmouseover="topLifter('ebene2')"></div>
  <div style="background-color: #333; visibility: visible; display: block; position: absolute; z-index: 3; top: 50px; left: 130px; width: 100px; height: 100px;" id="ebene3" onmouseover="topLifter('ebene3')"></div>
 </body></html>

Damit das Programm arbeitet, muss ein beliebiger Anfangswert z.B.
var zTop=0;
gesetzt werden

warum das auch mit negativen Werten geht, verstehe ich nicht, aber darum geht es mir im Moment nicht.

Ich komme nicht weiter, weil ich diese Funktion  für eine größere Seite mit vielen solcher Ebenen benutzen will. Ich wollte goLive benutzen und dort eine Funktion topLifter erzeugen, die ich immer wieder an vielen anderen Stellen aufrufen kann, um jeweils die aktuelle Ebene nach oben zu bringen.

Woran ich scheitere ist der Anfangswert.
Ich schaffe es nicht, ihn so zu initialisieren, dass die Funktion, wenn sie zum ersten Mal aufgerufen wird mit (irgend) einem Wert anfängt. Wenn ich sie weglasse tut sich gar nichts, wenn ich sie vor den Funktionsaufruf stelle, kann goLive sie nicht einbinden.

Kann mir da jemand helfen? Das wäre super!

Reiner Wirth

  1. Erstmal prinzipiell

    <script language="JavaScript1.2" name="Ebene rauf"><!--

    fehlt hier das type Attribut und um ein Script Element ein name Attribut besitzen darf weiß ich nicht, vermute aber nein.

    var zTop=0;
       function topLifter(idEbene)
       {
       zTop=zTop+1;
         document.getElementById(idEbene).style.zIndex=zTop;
       }

    so wie das ganze aufgebaut ist, brauchst du getElementById gar nicht.

    <div style="background-color: #cccccc; visibility: visible; display: block; position: absolute; z-index: 1; top: 110px; left: 50px; width: 100px; height: 100px;" id="ebene1" onmouseover="topLifter('ebene1')"></div>

    Du kannst stat 'ebene1' this übergeben und damit direkt in der Funktion arbeiten.

    Damit das Programm arbeitet, muss ein beliebiger Anfangswert z.B.
    var zTop=0;
    gesetzt werden

    So wie es jetzt ist, ja.

    warum das auch mit negativen Werten geht, verstehe ich nicht, aber darum geht es mir im Moment nicht.

    Gehen ist relativ, im Firefox werden die Ebenen nicht mehr angezeigt

    Woran ich scheitere ist der Anfangswert.
    Ich schaffe es nicht, ihn so zu initialisieren, dass die Funktion, wenn sie zum ersten Mal aufgerufen wird mit (irgend) einem Wert anfängt. Wenn ich sie weglasse tut sich gar nichts, wenn ich sie vor den Funktionsaufruf stelle, kann goLive sie nicht einbinden.

    Kann mir da jemand helfen? Das wäre super!

    Ich verstehe nicht so recht woran es scheitert, ich würd zuerst sagen, probier es ohne goLive.

    Struppi.

    --
    Javascript ist toll (Perl auch!)