2013-03-28 2 views
0

문서가 간격을 둘 때마다 마지막 숫자 +1에 어떻게 추가합니까? 나는이 받고 있어요는 : jsfiddle.net/zAt7C/1/jQuery 루프. 이전 숫자에 하나 추가

$(document).ready(function() { 
    // verification 
    $('title').text('jQuery is working!'); 

    // loop 
    setInterval(function() { 
     for (var i = 1; i < 2; i++) { 
      $('.repeat').append(i + ' '); 
     }; 
    }, 1000); 
}); 
+0

에있다 blankblaNk은 무엇을 의미 하는가입니다.? 일반적인 아이디어는 코드를 게시하기 위해 질문 상자의 모든 공간을 사용한다는 것입니다. jsfiddle이 도움이되는 동안 링크가 끊어지는 경우에 대비하여 여기에 코드를 포함 시켜서 스택 오버플로를 떠나지 않아야합니다. 문제가 해결되지 않으면 소식을 다시 열 수 있도록 소식을 수정할 수 있습니다. 행운을 빕니다! :-) – jmort253

답변

0

jsFiddle demo

대답은 실제로 변수 범위의 사용에있다. 변수 isetInterval 콜백 기능의 범위에만 존재합니다. 그 함수의 전후에 변수가 존재하지 않으므로 값을 가질 수 없습니다 ... 함수가 시작될 때마다 다시 초기화됩니다. 변수를 setTimeout 함수 외부로 이동하면 더 큰 범위의 일부인 $(document).ready 이벤트 처리기의 일부가됩니다. 해당 범위와 해당 범위 안에있는 다른 모든 범위 (이 경우에는 setTimeout 콜백)에서 계속 사용할 수 있습니다.

자바에 대한 좋은 책은 더글라스 크록 포드의 Javascript: The Good Parts입니다. 범위와 클로저를 설명하는 좋은 게시물을 How do JavaScript closures work?

+0

설명해 주셔서 감사합니다! 이것은 효과가있다! –

0

LIVE DEMO

var i = 0; 
setInterval(function() { 
    $('.repeat').append(' '+ (i++)); 
}, 1000); 
+0

그래, 남자! 간단하고 작동 –

+0

@ ArnoldsKļavenieks 당신은 환영합니다;) –

0
$(document).ready(function() { 
    // verification 
    $('title').text('jQuery is working!'); 

    (function func (i) { 
     setTimeout(function() { 
      $('.repeat').append(i + ' '); 
      i += 1; 

      if (i <= 10) { 
       func(i); 
      } 
     }, 1000); 
    }(0)) 
}); 

Fiddle

관련 문제