Dennis Rochel: setTimeout problemchen ;(

Hallo zusammen,
ich möchte ein DIV Element kurz aufblinken lassen, was ich mit dieser Funktion realisieren wollte:

function blinking(what)
{
   var puffer;

document.getElementById(what).style.backgroundColor="#FF0000";
   setTimeout("puffer = 6",5000);
   document.getElementById(what).style.backgroundColor = "#00FF00";
}

Was Jedoch passiert ist, dass Element "what" wird sofort grün :-( Woran könnte das hierbei liegen?

MfG
Dennis

  1. Hallo Dennis,

    du solltest Dir nochmal die Parameter von setTimeout anschauen:
    [linkhttp://de.selfhtml.org/javascript/objekte/window.htm#set_timeout]

    setTimeout("puffer = 6",5000);

    Führt eine Anweisung nach einer bestimmten Verzögerungszeit aus. Erwartet zwei Parameter:
    1. Code = Eine JavaScript-Anweisung, die verzögert ausgeführt werden soll. Meistens ein Funktionsaufruf.
    2. Pause = Wert in Millisekunden bis zum Ausführen.

    Gruß
    Paul

    1. <[linkhttp://de.selfhtml.org/javascript/objekte/window.htm#set_timeout>

      das ich aber auch nie die Vorschaufunktion nutze *kopfschüttel*

        1. Hi Paul,
          hehe... die Donnerstage sind schon hart ;))
          Trotzdem vielen vielen Dank. Wenn ich jetzt den Objektnamen fix in die Funktionschreibe

          document.getElementById(what).style.backgroundColor="#FF0000";
          setTimeout("document.getElementById(tester).style.backgroundColor = "#FFFFFF",1000);

          Dann macht er es wunderbar für den "tester". Allerdings wollte ich diese Funktion allgemein gültig lassen, jedoch sowas wie das hier:

          document.getElementById(what).style.backgroundColor="#FF0000";
          var doThat = "document.getElementById("+what+").style.backgroundColor = "#FFFFFF"";

          setTimeout(doThat,1000);

          funktioniert leider nicht; noch ne idee?!

          Gruß
          Dennis

          1. document.getElementById(what).style.backgroundColor="#FF0000";
            var doThat = "document.getElementById("+what+").style.backgroundColor = "#FFFFFF"";

            setTimeout(doThat,1000);

            funktioniert leider nicht; noch ne idee?!

            Fehlermeldung?
            was steht denn in doWhat zur Laufzeit?

            Struppi.

            --
            Javascript ist toll (Perl auch!)
          2. Tag,

            Hi Paul,
            hehe... die Donnerstage sind schon hart ;))
            Trotzdem vielen vielen Dank. Wenn ich jetzt den Objektnamen fix in die Funktionschreibe

            document.getElementById(what).style.backgroundColor="#FF0000";
            setTimeout("document.getElementById(tester).style.backgroundColor = "#FFFFFF",1000);

            Dann macht er es wunderbar für den "tester". Allerdings wollte ich diese Funktion allgemein gültig lassen, jedoch sowas wie das hier:

            document.getElementById(what).style.backgroundColor="#FF0000";
            var doThat = "document.getElementById("+what+").style.backgroundColor = "#FFFFFF"";

            setTimeout(doThat,1000);

            entweder so:

              
            what = "xyz";  
            document.getElementById(what).style.backgroundColor="#FF0000";  
            var doThat = "document.getElementById(what).style.backgroundColor = '#FFFFFF'";  
            setTimeout(doThat,1000);  
            
            

            oder so:

              
            document.getElementById('what').style.backgroundColor="#FF0000";  
            var doThat = "document.getElementById('what').style.backgroundColor = '#FFFFFF'";  
            setTimeout(doThat,1000);  
            
            

            Immer schön auf die Quotes und valides JS achten.

            Grüße,
            Steffen.