molily: Javascript funktioniert

Beitrag lesen

Hallo,

e.style.top = top;
e.style.left = left;
e.style.width = width;
e.style.height = height;

Die Einheit "px" fehlt hier. Die ist wichtig, sonst ignorieren standardkonforme Browser diese Zuweisungen.

Wenn ich draufklicke vergrößert sich auch der DIV (id = zoomit).
Jedoch wird die Funktion nicht mehrmals ausgeführt.

Sie wird versucht auszuführen, aber dabei gibt es vermutlich einen JavaScript-Fehler. Schau mal in der JavaScript-Konsole vom Firefox.

Woran liegt das?

Beim ersten Aufruf werden die Variablen top, left, width, height als lokale Variablen im Geltungsbereich der Funktion angelegt.

Der Code-String, den du setTimeout übergibst, wird aber im globalen Geltungsbereich ausgeführt, und da gibt es keine derartigen Variablen.

Eine mögliche Umsetzung sind Closures:

window.setTimeout(function () {  
   zoom(top, left, width, height);  
}, 100);

Hier erzeugst du eine anonyme Funktion, die Zugriff auf die lokalen Variablen des zoom-Funktionsaufrufes hat - auch nachdem der Aufruf abgearbeitet wurde.

Mathias