window.setTimeout verliert beim Aufruf den Parameter?



  • Hi,

    ich bastle momentan ein kleines Script für eine Animation. Jedoch beim Aufruf von window.setTimeout, wo ich die Funktion aus aufrufe und das Objekt übergebe, jammert wer wenn die Bedingung nicht erfüllt wurde das er 'object' nicht kennt?

    Erstmal Code

    <head>  <style type="text/css">
    
    #bla
    {position:absolute;
        left: 0px;
        width:100px;
        background-color: #0000FF;
    }
    
      </style>
      <script language="JavaScript">
    
    function getObject(objectId) 
    {
        if(document.getElementById && document.getElementById(objectId))
            return (document.getElementById(objectId));
        else if (document.all && document.all(objectId)) 
            return (document.all(objectId));
        else
            return (false);
    } 
    
    positions = new Array ();
    
    function init ()
    {
        positions['bla'] = 40;
    }
    
    function moveObject (object)
    {
        obj = getObject (object);
    
        positions[object] = positions[object] + 400;
        obj.style.left = positions[object];
    
        if (positions[object] < 400) 
            window.setTimeout("moveObject("+object+")", 100); // <<<
    }
    
      </script>
    </head>
    <body onload="init (); moveObject('bla'); ">
    
    <div id="bla" name="xxx">bla</div>
    

    Positionieren und co geht einwandfrei, aber bin ich im if drine damit ich die Funktion erneut aufrufen kann fängt er an zu heulen. Ich hoffe ihr könnt mir da evtl. weiterhelfen.

    Danke im voraus!

    - Patrick



  • Nachtrag: Nicht wundern das er bei Copy'n paste nicht jammert. Erhöht einfach die Zahl mal in der if-bedingung. Dann gehts ab 😞



  • Du hast die Anführungszeichen vergessen:

    window.setTimeout("moveObject('"+object+"')", 100);
    


  • flenders schrieb:

    Du hast die Anführungszeichen vergessen:

    window.setTimeout("moveObject('"+object+"')", 100);
    

    D'oh

    Danke


Anmelden zum Antworten