2011-11-23 7 views
4

재귀 function.i'm가 불을 지르고에서 오류가 발생했을 때 문제가 있어요와 통화 기능 (PARAMS)이너무 많은 재귀 시간 제한

너무 많은 재귀

이가 내 자바 스크립트 코드 :

var contentPc = "list"; 
waitForBody(contentPc); 
function waitForBody(id){ 
    var ele = document.getElementById(id); 
    if(!ele){ 
     window.setTimeout(waitForBody(contentPc), 100); 
    } 
    else{ 
     //something function 
    } 
} 

어떻게 해결할 수 있습니까? 당신의 대답에 감사드립니다.

답변

9

아마도 DOM에 id="list" 요소가 없습니다. 즉 초기 waitForBody 전화가 여기까지됨을 의미합니다 :

window.setTimeout(waitForBody(contentPc), 100); 

setTimeout에 대한 인수 목록을 구축하는 동안 그 waitForBody(contentPc)를 호출합니다. 그리고 다시 setTimeout 호출로 끝나고 스택 레벨이 한 단계 더 증가합니다. 나는이 말을 의미 생각 : 다음 waitForBody 호출이 조금 지연

window.setTimeout(function() { waitForBody(contentPc) }, 100); 

있도록.

+1

JS 구문에서 내 추측을 올바르게 볼 수있어서 좋았습니다. -하지만 내 대답은 당신에게 주어진 의미가 없습니다. :) –

+0

아하, 진정한 사람 .... hihihi .. 너의 대답을위한 ... 감사합니다 ... – viyancs

관련 문제