flexi
Lounge-Member
ich habe ein kleines aber ziemlich gemeines Problem:
ich habe eine Funtion mit einem Übergabewert (Name eines Arrays), die sich selber mit dem gleichen Übergabewert duch einen Timeout wieder aufruft
function ticker_auf(name)
{
if(alle_ticker[name]["zaehler"]>100)
{
...
...[nicht weiter wichtig was hier steht]
...
alle_ticker[name]["zaehler"]--;
setTimout("ticker_auf(name)",30)
}
}
bei dieser Funktion sagt er mir beim 2.ausführen, dass 'name' nicht definiert ist. - wenn ich allerdings vorher so tu:
var Name;
function ticker_auf(name)
{
if(alle_ticker[name]["zaehler"]>100) //alle_ticker ist ein mehrdimensionales Array
{
...
...[nicht weiter wichtig was hier steht]
...
alle_ticker[name]["zaehler"]--;
Name = name; //den lokalen Übergabewert in eine globale Variable schreiben
setTimout("ticker_auf(Name)",30);
}
}
Wenn ich also den Übergabewert zwischnespeichere in einer globalen Variable, dann gehts! nur dummerweise, will ich vielleicht auch mehrere Instanzen dieser Funktion laufen lassen. (die verschiedenen Zähler stören einander)
Meine Frage: wie kriege ich lokale Variablen mit 'nem setTimeout in einer Funktion übergeben und nicht bloß globale Variablen - oder zumindest die funktion so hingebastelt, dass sich mehrere Instanzen nicht stören?
Ich weiß ich könnte auch für jeden einzelnen Ticker eine eigene Funktion schreiben, aber das ist mir irgendwie zu umständlich
Danke, Felix
ich habe eine Funtion mit einem Übergabewert (Name eines Arrays), die sich selber mit dem gleichen Übergabewert duch einen Timeout wieder aufruft
function ticker_auf(name)
{
if(alle_ticker[name]["zaehler"]>100)
{
...
...[nicht weiter wichtig was hier steht]
...
alle_ticker[name]["zaehler"]--;
setTimout("ticker_auf(name)",30)
}
}
bei dieser Funktion sagt er mir beim 2.ausführen, dass 'name' nicht definiert ist. - wenn ich allerdings vorher so tu:
var Name;
function ticker_auf(name)
{
if(alle_ticker[name]["zaehler"]>100) //alle_ticker ist ein mehrdimensionales Array
{
...
...[nicht weiter wichtig was hier steht]
...
alle_ticker[name]["zaehler"]--;
Name = name; //den lokalen Übergabewert in eine globale Variable schreiben
setTimout("ticker_auf(Name)",30);
}
}
Wenn ich also den Übergabewert zwischnespeichere in einer globalen Variable, dann gehts! nur dummerweise, will ich vielleicht auch mehrere Instanzen dieser Funktion laufen lassen. (die verschiedenen Zähler stören einander)
Meine Frage: wie kriege ich lokale Variablen mit 'nem setTimeout in einer Funktion übergeben und nicht bloß globale Variablen - oder zumindest die funktion so hingebastelt, dass sich mehrere Instanzen nicht stören?
Ich weiß ich könnte auch für jeden einzelnen Ticker eine eigene Funktion schreiben, aber das ist mir irgendwie zu umständlich
Danke, Felix