Element als Parameter übergeben in verknüpfter Zeichenkette
wimu
- javascript
Moin, folgendes Problemchen:
ich habe eine Funktion, die per setTimeout wieder sich selbst aufruft (setInterval geht nicht, da an die Funktion variablen übergeben werden). So ungefähr sieht's aus (ja ich weiß, dass das 'ne Endlosschleife produziert ... ist ja nur ein Beispiel):
function meineFunktion(i, j) {
i.style.irgendwas = j + 'px oder so halt';
j++;
window.setTimeout('meineFunktion(' + i + ',' + j + ')', npaarMillisekunden);
}
Das "j" ist 'ne Zählvariable und macht keine Probleme, aber das "i" soll irgendein Knoten, z.B. ein div-Element sein. Nun wird beim Timeout daraus aber leider ein string, so dass ich statt des eigentlichen Elements den string [object HTMLDivElement] übergebe. Irgendeine Idee? Das "i" will ich nicht unbedingt in eine "globale" Variable packen, da möglicher Weise mehrere "meineFunktionen" gleichzeitig ablaufen ...
Grüße und Danke,
WiMu
Hi,
> window.setTimeout('meineFunktion(' + i + ',' + j + ')', npaarMillisekunden);
Das "j" ist 'ne Zählvariable und macht keine Probleme, aber das "i" soll irgendein Knoten, z.B. ein div-Element sein. Nun wird beim Timeout daraus aber leider ein string, so dass ich statt des eigentlichen Elements den string [object HTMLDivElement] übergebe. Irgendeine Idee?
Mach's vernünftig - übergebe keinen Textstring, sondern die Referenz auf eine Funktion.
Closures helfen bei der Übergabe der Parameter.
http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#closures
MfG ChrisB
Closures ... kannte ich noch gar nicht. 1000 Dank, das löst gleich einen ganzen Batzen viel mehr Probleme.
Grüße,
WiMu