2011-12-18 3 views
2

Я пытаюсь сделать индикатор выполнения, который перемещается каждые 5 секунд. Вот мой код:javascript setTimeout error

function Progress(runner, validlinks) 
{ 
    if (runner <= validlinks) 
    { 
     var myString = document.getElementById('links').value; 
     var mySplit = myString.split("\n"); 
     var ValidLinksCount = 0; 

     for(i = 0; i < mySplit.length; i++) 
     { 
      if (mySplit[i].search("who") != -1) 
       ValidLinksCount++; 
       ValidLinksCount++; 
      else if (mySplit[i].search("we") != -1) 
       ValidLinksCount++; 
     } 
     var jump = Math.ceil(100/ValidLinksCount); 
     runner++; 
     document.getElementById("progressDiv").style.width = parseInt(document.getElementById("progressDiv").style.width) + jump + "%"; 
     window.setTimeout(Progress(runner,ValidLinksCount), 5000); 
    } 
} 

Я называю его на кнопку отправить, как это:

<input type="submit" name="submit" disabled="true" onclick="Progress(0,0);" value="check" /> 

Он просто работает и не ждет 5 секунд до следующего запуска, то почему? Благодарю.

ответ

8

Pass, не вызывайте, функция.

window.setTimeout(function() { 
    Progress(runner,ValidLinksCount); 
}, 5000); 
+1

Вау, большое вам спасибо, я разоряю голову, чтобы найти решение. – user1104615