Hallo tobias,
also Grundsätzlich: ERST büffeln, dann Code schreiben, dann fragen, nicht umgekehrt.
Die Variable "dir" hast Du bereits als global definiert, natürlich bleibt sie nicht erhalten, weil Du ihr in der funktion moveIt einen anderen Wert zuweist (interessier Dich mal für Javascript-Operatoren bezüglich der Zuweisung "dir=-dir"). Dies ist übrigens auch in Pascal oder C so.
Nach "var x=test.style.left;"kannst Du das überflüssige "px" mit
x = x.slice(0, x.length - 2);
ausfiltern, dann befindet sich in x eine Zahl. Vielleicht sicherheitshalber
x = x * 1;
Nun zu "setTimeout('moveIt();'100000);":
Was du offenbar möchtest ist kein Timeout, sondern ein Setinterval:
"setInterval('moveIt();'100000);"
Damit das auch gespeichert bleibt:
var merken = "setInterval('moveIt();'100000);"
Nun zu den Fehlern:
Das Semikolon ist falsch, ein Komma muss hin, und zwar NACH dem schliessenden Hochkomma:
var merken = "setInterval('moveIt()',100000);"
Und die Zeit ist ziemlich lang (100000 Millisekunden = 1,6 Minuten!
Aber wie schon gesagt, alles steht in der Javascript-Referenz.
MfG
Hartmut R.