2010-05-19 2 views
-1

의 setTimeout 스택 흐름의 setTimeout $ (문서) .ready (함수() { counterFN();은 .. 위에 적층 흐름을

  var theCounter = 1; 
      function counterFN() 
      { 
       $(".searchInput").val(theCounter); 
       theCounter++; 
       setTimeout(counterFN(),1000);  
      } 

     });   
    </script> 
</head> 
<body> 
    <input type="text" class="searchInput" /> 
</body> </html> 
+0

당신이 수행 할 작업을? – Sarfraz

+1

질문은 어디에 있습니까? 문제가있는 코드를 버리기 전에 영어로 문제를 설명하는 것이 예의입니다. – Tyn

+1

스택 오버플로에 오신 것을 환영합니다. 당신은 당신의 질문이 무엇인지 (또는 아마도 닫힐 것임) 분명히하고, 코드를위한 포맷 메커니즘을 사용하기 위해 더 많은 노력을 기울일 필요가있다. 도움을 받으려면 오렌지색 물음표를 클릭한다. –

답변

4

당신은 counterFN을 호출하고 반환 값을 1000 밀리 초 후에 실행하도록 설정합니다. 함수를 반환하지 않으므로 아마도 그렇게하고 싶지 않을 것입니다.

당신은 아마 원하는 : 더 나은

  setTimeout(counterFN,1000);  

아직 재귀, 그리고 변경되지 않습니다 것들을 더 캐싱하지 않는다 :

 var theCounter = 1; 
     var input = $(".searchInput"); // Cache this 
     function counterFN() 
     { 
      input.val(theCounter); 
      theCounter++; 
     } 
     setInterval(counterFN, 1000); 
+0

선생님, 고맙습니다. 저에게 질문하지 않고 저의 요점은 .. :) setTimeout (counterFN, 1000); 정말 작동합니다 .. –

+1

@ user344862 :이 습관을 만들지 마십시오. 문제를 항상 명확하게 설명하십시오. 우리 모두는 코드를 거치지 않고 잘못된 점을 추측해야합니다. **이 답변이 마음에 드시면 *이 답변 옆에있는 녹색 체크를 클릭하여 ** 수락하십시오. –

1

변경이 ...

setTimeout(counterFN(),1000); 

다음으로 :

setTimeout(counterFN,1000); 

그렇지 않으면, 당신은 대신 함수 자체에 대한 시간 제한을 설정하는, counterFN를 호출하고 어떤 그것을 반환에 대한 제한 시간을 설정하려고 -하지만 (원래 코드에서) 반환하기 전에 자신을 호출하려고하기 때문에, 무한 루프의 호출이 생성되어 스택 오버플로가 발생합니다.

관련 문제