Nico Dahlmann: Funktion soll andere Funktion aufrufen

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

  1. 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.

    1. 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);

      1. 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

  2. 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

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  3. Hi,

    {window.setTimeout("test(id)",1000);return false;}

    {window.setTimeout("test('"+id+"')",1000);return false;}

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!