Matze: Brauche Funktion

Hallo!

Ich brauche eine Funktion(JS), die folgendes beschreibt:
(Diese Funktion ist rein trivial, nur um das Problem klarzumachen!!!)

function aendere()
{
if(Bild == visible)
{
Bild = hidden
}
else
{
Bild = visible}
}
}

Diese Funktion will ich dann in diesen Button einbinden:

<input type="button" onClick="aendere()">

Somit wird also das Bild mit einem Klick sichtbar, mit noch einem Klick wieder unsichtbar usw.

Der stylesheet für das Bild sieht so aus:

#bild   {position: absolute;
              left: 12;
               top: 17;
        visibility: hidden;}

Der Wert für visible soll also mit einer Funktion geändert werden. Kann mir jemand eine sloche Funktion angeben??

Danke im Voraus

Matze

  1. Der Wert für visible soll also mit einer Funktion geändert werden. Kann mir jemand eine sloche Funktion angeben??

    hmm. Das hast Du ja schon fast selber geschrieben...

    function aendere()
    {
    if(Bild == visible)
    {
    Bild = hidden
    }
    else
    {
    Bild = visible}
    }
    }

    Also ich würde das jetzt mal so versuchen:
    function aendere()
    {
     if ( document.getElementsById(bild).style.visibility = 'hidden' )
     {
      document.getElementsById(bild).style.visibility = 'visible';
     }
     else
     {
      document.getElementsById(bild).style.visibility = 'hidden';
     }
    }

    Ich habe das jetzt nicht getestet, schätze aber, daß es so funktioniert, d.h. so sollte es in neueren Browser funzen (ab IE 5 / Netscape 6 / Mozilla). Für ältere Browser müßtest Du das nochmal extra schreiben, d.h. alter IE: document.all und alter Netscape mit document.layers

    1. Funzt irgendwie nicht. Ich hab aber IE 5. Mit all hab ichs auch probiert geht aber auch nicht. Ist all nicht nur zum ändern von HTML-Tags gut? Ich weiss nicht, ob man das auch auf stylesheets anwenden kann.

      Matze

    2. Hi,

      if ( document.getElementsById(bild).style.visibility = 'hidden' )

      müsste das nicht

      if ( document.getElementsById(bild).style.visibility == 'hidden' )

      heißen?

      Gruß,
      small-step

      1. oh, ja... Das muß es natürlich. Ich hatte die Zeile geschrieben und danach noch die if-Abfrage drum gesetzt und den Code da reinkopiert..
        Aber klar: Es muß im if-Teil == statt = heißen. Es soll ein Vergleich sein und keine Zuweisung. mea culpa.

      2. Hi,

        müsste das nicht

        if ( document.getElementsById(bild).style.visibility == 'hidden' )
        heißen?

        schon besser aber immer noch verkehrt - IDs sind einmalig und werden daher im Javascript auch in Einzahl angesprochen. ;-)

        freundliche Grüße
        Ingo

        1. Hi,

          schon besser aber immer noch verkehrt - IDs sind einmalig und werden daher im Javascript auch in Einzahl angesprochen. ;-)

          verzeih mir bitte!

          Ich mag kein JavaScript :-)

          Gruß,
          small-step

  2. Hi,

    left: 12;
                   top: 17;

    left und top erwarten einen Length-Wert.
    Eine Zahl ohne Längeneinheit ist kein Length-Wert.
    Korrekte Browser ignorieren korrekterweise solche fehlerhaften Werte.

    visibility: hidden;}
    Der Wert für visible soll also mit einer Funktion geändert werden. Kann mir jemand eine sloche Funktion angeben??

    Hat rob schon getan.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/