2011-12-18 5 views
2

5 초마다 진행률 표시 줄을 만들려고합니다. 나는이 같은 제출 버튼을 호출자바 스크립트 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