2014-05-20 3 views
2

시작하기 전에 이미이 항목에 대해 thread이 있었지만 불행히도 전혀 도움이되지 않았습니다.루프를 기다리십시오.

내 문제는 여기에 JavaScript로 작성된 루프가 있고 그 끝에 버튼 클릭 이벤트가 있습니다. 이 이벤트는 팝업 창 안에있는 버튼과 관련이 있습니다.

for(var i=0; i<value; i++){ 
    [...] 
    //some code here 
    [...] 
    //opens the window 
    windowButton.addEventListener('click', function(){ 
    //code 
    }); 
    //here I would like for it to continue once the click has been triggered 
} 

불행히도, 클릭을 기다리지 않습니다.

비슷한 게시물에서와 마찬가지로 함수 내에서 변수 i을 증가시키지 않거나 전역 변수를 사용합니다. 그리고 제안 된 대답은 내가 찾는 것이 아닙니다.

[편집] 좋아요, 이제 좀 더 정확한 정보를 추가하겠습니다. 나는 양식을 만들어야합니다. 그러나 모든 정보가 포함 된 파일을 파싱하고 파일을 채울 수 있어야합니다. 파일의 각 정보 행에 대해 양식이 완전히 채워질 때마다 창을 열어 그 안에있는 유효성 검사 단추를 기다려야합니다.

시 나는 나 자신을 충분히 분명하게하기를 바라고있다. [/ 편집]

자바 스크립트의 기능을 일시 정지 할 수있는 방법은 없습니다 어떤 reponse

+0

여기를 참조하십시오. http://stackoverflow.com/questions/1451009/javascript-infamous-loop-issue – elclanrs

+0

루프에 리스너를 추가하는 경우 아마도 잘못된 것이 있습니다. 이것의 동기는 무엇입니까? – J0HN

답변

3

에 미리 감사드립니다. 당신은 당신의 접근 방식을 완전히 바꿔야합니다.

루프를 돌릴 때마다 현재 실행중인 코드를 으로 이동하여 별도의 기능을 사용하십시오.

해당 함수 외부에서 변수를 만듭니다.

함수가 호출 될 때마다 해당 변수를 증가시킵니다.

변수가 "너무 크면"아무것도 수행하기 전에 함수에서 반환하십시오.

해당 이벤트를 클릭 이벤트 처리기로 지정하십시오.

+0

대단히 고마워, 내가 그걸 시도 할께. – BigFoot

+0

그래서 노력했지만 어떻게 대답을 성취 할 수 있을지 모르겠다. 재귀에 대해 잘 알고 있다면 이해할 수 있을까? 내가 이미 시도했지만, 재귀가 전체 스택을 다시 호출하기 때문에 제 경우에는 불가능합니다. 다시 한번 감사합니다. – BigFoot

+0

예, 재귀를 사용해야합니다. 나는 "전체 스택을 되 돌리는 것"이 ​​무엇을 의미하는지 또는 그것이 왜 당신이 질문에서 설명하는 것을하지 못하게하는지를 잘 모른다. – Quentin

관련 문제