我在递归函数时遇到问题。我在firebug中得到错误
太多的递归
这是我的javascript代码:
var contentPc = "list";
waitForBody(contentPc);
function waitForBody(id){
var ele = document.getElementById(id);
if(!ele){
window.setTimeout(waitForBody(contentPc), 100);
}
else{
//something function
}
}
我怎么能解决这个问题?谢谢你的回答。
答案 0 :(得分:9)
据推测,您的DOM中没有id="list"
元素。这意味着您最初的waitForBody
电话会在此处结束:
window.setTimeout(waitForBody(contentPc), 100);
这将在构建waitForBody(contentPc)
的参数列表时调用setTimeout
。然后你再次回到setTimeout
再次呼叫,但再深一个堆栈级别。我想你的意思是这样说:
window.setTimeout(function() { waitForBody(contentPc) }, 100);
以便下一个waitForBody
来电延迟一点。