Dirk: Prüfen. ob Variable überhaupt gesetzt ist

Hallo zusammen,

ich würde gern prüfen, ob eine Variable überhaupt existiert. In PHP gibt es die Funktion "isset" oder "empty". In Javascript krieg ich leider nur ne Fehlermeldung. Hier mal der Code, um zu demonstrieren, was ich mache:

function zeigen(objekt)
         {
         switch (objekt)
                {
                case 'veranstaltungen':
                window.clearTimeout(veraktiv);
                break;
                case 'fotos':
                window.clearTimeout(fotaktiv);
                break;
                default:
                break;
                }

var lokalesobjekt = eval('document.getElementById("'+objekt+'")');
lokalesobjekt.style.visibility = "visible";

switch (objekt)
       {
       case 'veranstaltungen':
veraktiv = window.setTimeout("einzelnverstecken('veranstaltungen')",2000);
                break;
                case 'fotos':
                fotaktiv = window.setTimeout("einzelnverstecken('fotos')",2000);
                break;
                default:
                break;
                }
         }

Ich frage also oben ab, ob bereits ein Objekt namens veraktiv gesetzt wurde, falls ja, will ich den Timout für diese Funktion abbrechen. Falls nein, soll nix passieren. Danach wird mein Objekt sichtbar, um anschließend den Timeout wieder neu zu setzen.

Wie gesagt, das einzige, was hier nicht funktioniert, ist, daß veraktiv ja beim erstmaligen Aufruf noch nicht existiert. Kennt jemand ne Lösung?

viele Grüße, Dirk

  1. Hallo Dirk,

    ich würde gern prüfen, ob eine Variable überhaupt existiert.

    typeof

    HTH

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
  2. var lokalesobjekt = eval('document.getElementById("'+objekt+'")');

    Wozu eval?
    var lokalesobjekt = document.getElementById(objekt);

    macht genau das gleiche und ist schenller und weniger Fehleranfällig.

    lokalesobjekt.style.visibility = "visible";

    Ich frage also oben ab, ob bereits ein Objekt namens veraktiv gesetzt wurde, falls ja, will ich den Timout für diese Funktion abbrechen. Falls nein, soll nix passieren. Danach wird mein Objekt sichtbar, um anschließend den Timeout wieder neu zu setzen.

    wo fragst du nach ob veraktiv gesetzt wurde?

    Wenn es um den clearTimeout geht:
    if(veraktiv) window.clearTimeout(veraktiv);

    Struppi.

    1. var lokalesobjekt = document.getElementById(objekt);
      macht genau das gleiche und ist schenller und weniger Fehleranfällig.

      Da scheinst Du recht zu haben. Hab da ewig lange probiert und es so nicht hingekriegt... Danke!

      wo fragst du nach ob veraktiv gesetzt wurde?

      jo, ich weiß, in dem codeschnipsel stehts nicht

      Wenn es um den clearTimeout geht:
      if(veraktiv) window.clearTimeout(veraktiv);

      Nee, das hab ich auch versucht. Inzwischen hab ich aber window.veraktiv benutzt und schon gings!

      Damit sind meine Fragen beantwortet! Vielen Dank für den Tip mit eval!

      viele Grüße, Dirk

      1. Wenn es um den clearTimeout geht:
        if(veraktiv) window.clearTimeout(veraktiv);
        Nee, das hab ich auch versucht. Inzwischen hab ich aber window.veraktiv benutzt und schon gings!

        Dann stimmt was mit deinem Code nicht. window ist default (wobei der IE das u.U. anders sieht). evtl. hast du irgendein anderes Objekt mit der Bezeichnung 'veraktiv'.

        Struppi.