2011-12-18 15 views
2

5秒ごとに移動する進行状況バーを作成しようとしています。ここ は私のコードです:javascript setTimeoutエラー

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

関連する問題