2012-03-16 3 views
1

어떤 이유로 든이 기능을 반복적으로 사용할 수 없습니다. 내가 페이지 카운터 작품을 새로 경우, 아이러니하게도 getnumbers 변수 단지 이름입니다 getnumbers가 (정의되지 않은setTimeout을 사용할 때 "함수가 정의되지 않았습니다"?

 
$(document).ready(function(){ 


    var getnumbers = { 

     countDigit: function(){ 

      if (sessionStorage.counter=="NaN"){ 
       sessionStorage.counter="0";         
      } 
      else { 
       sessionStorage.counter=Number(sessionStorage.counter)+1; 

      } 

      $("#result").text("counter: " +sessionStorage.counter); 

      setTimeout("getnumbers.countDigit()",3000);    

     }, 

     _init: function(){ 
      getnumbers.countDigit();  
     } 
    }; 

    getnumbers._init();  

}) 
    

을, 그래서 나는 알고있다. 그것은에서는 setTimeout을 얻으면, 그것은 "캐치되지 않는 오류 ReferenceError을 뱉어 그것은 그냥 한 줄에 갇히지입니다. 나는 무엇을 누락 될 수 있을까?이 getnumbers.countDigit()을 평가하려고 할 때

감사합니다! 문자열 인수와

+0

http://stackoverflow.com/questions/3741503/why-do-i-get-my-function-is-not-defined-when-passing-a-string-to -settimeout –

답변

6

setTimeout는., 그것은 전역에 불과 글로벌 eval 평가한다 더 이상에 액세스 할 수 없습니다. 10.

솔루션 : 문자열을 전달하지 마십시오. 대신,이 시도 :

setTimeout(getnumbers.countDigit, 3000); 
+0

는 매력처럼 작동했습니다! 나는 똑같은 것을 시도했지만,()을 벗는 것을 잊었다 - 좋은 잡기! 감사! – tlflow

관련 문제