2011-12-18 59 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

通過,不要調用函數。

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

哇,非常感謝你,我一直在竭力尋找解決方案。 – user1104615 2011-12-18 15:42:49