Funktion soll andere Funktion aufrufen
Nico Dahlmann
- javascript
0 Rafael0 Nico Dahlmann0 D.R.
0 Hopsel1 Cybaer
Hallo,
weiß jemand warum die Funktion test() nicht aufgerufen wird?
<html>
<head>
<script type="text/javascript">
function bla(id)
{window.setTimeout("test(id)",1000);return false;}
function test(id)
{alert(id);}
</script>
</head>
<body>
<a href="#" onclick="bla('123')";>Test</a>
</body>
</html>
Anscheinend wird irgendwie der Wert von id nicht übergeben,
wenn man es in bla() in Klammern setzt dann schon:
setTimeout("test('id')",1000)
Allerdings will ich ja nicht 'id' als Übergabe erhalten sondern den Wert von id.
Danke,
Nico
function bla(id)
{window.setTimeout(test(id),1000);return false;}
Dann setze doch bitte den Timeout-Parameter als Funktion und nicht als String. Siehe oben.
function bla(id)
{window.setTimeout(test(id),1000);return false;}Dann setze doch bitte den Timeout-Parameter als Funktion und nicht als String. Siehe oben.
In der Referenz steht aber das als Beispiel:
window.setTimeout("Hinweis()", 10000);
Wenn ich das nehme, dann springt er sofort zu der Funktion:
window.setTimeout(Hinweis(), 10000);
Hallo,
function bla(id)
{window.setTimeout(test(id),1000);return false;}Dann setze doch bitte den Timeout-Parameter als Funktion und nicht als String. Siehe oben.
In der Referenz steht aber das als Beispiel:
window.setTimeout("Hinweis()", 10000);
Wenn ich das nehme, dann springt er sofort zu der Funktion:
window.setTimeout(Hinweis(), 10000);
Du brauchst hier keinen Funktionsaufruf, sondern eine Funktionsreferenz. Die erstellst du wahlweise durch erzeugen einer neuen Funktion:
window.setTimeout(function(){Hinweis()},10000);
oder indem du nur den Namen der Funktion angibst (diese also direkt referenzierst):
window.setTimeout(Hinweis,10000);
mfg. Daniel
Hi Nico!
"An setTimeout() gekoppelte Funktionsaufrufe können auch Parameter enthalten. Berücksichtigen Sie dabei, dass lokale Variable dann nicht mehr zur Verfügung stehen. Eine Übergabe der Werte mittels Zeichenkettenverknüpfung ist jedoch jederzeit möglich."
Quelle: http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout
MfG H☼psel
Hi,
{window.setTimeout("test(id)",1000);return false;}
{window.setTimeout("test('"+id+"')",1000);return false;}
Gruß, Cybaer