[JS] setTimeout

0

Napisałem taką funkcję:

function Renew(user, button)
{
advAJAX.post({
          url : "Includes/places/bg/renew.php",
          parameters:{
               user: user

  },
  onSuccess : function(obj) {
    if (obj.responseText == "renewal_ok")
    {
        alert('Odnowa przebiegła pomyślnie.\nMożesz kontynuować swoją przygodę.');
        button.disabled = true;
    }
    else
    {

        document.getElementById('status').innerHTML=obj.responseText;
        setTimeout(Renew(user, button), 10000);
        button.disabled = true;
    }
  },
});
}

Tak ją wywołuję:

<div id="status"></div>
<BR><input type="button" value="Odpocznij" id="rest" onClick="Renew(\'' . $GlobalUserAccount['character_name'] . '\', document.getElementById(\'rest\'))">

Moje pytanie:
Dlaczego setTimeout nie działa ? Klikając na 'Odpocznij' - oczywisicie, statystyki sie odnawiaja, ale co 0,01 sec., a nie jak setTimeout nakazuje: co 10 sekund... po prostu staty odnawiaja sie za szybko. Gdzie popelnilem blad ?

0

pierwszy argument funkcji setTimeout moze byc funkcja albo łancuchem znaków (który zostanie wykonany jak w eval)
to co Ty wpisales to juz jest wywolanie funkcji, mozesz to zrobic tak:
setTimeout(function() { Renew(user, button); }, 10000);
lub
setTimeout('Renew("' + user + '", document.getElementById("' + button.id + '"))', 10000);

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0