在settimeout函数内调用函数不起作用

时间:2012-03-14 09:10:49

标签: javascript jquery settimeout

为我的递归javascript提供喘息的机会我试图使用延迟来避免脚本在浏览器中崩溃。

以下是用于调用函数的代码段。

setTimeout(function () {
       recursiveGenerateTree(objNode.NodeList[cntLi], spnApplyClass, '', objEditParam)
}, 50);

似乎没有调用该函数,没有任何出路

4 个答案:

答案 0 :(得分:1)

尝试将50更改为更大的值...该值以毫秒为单位。使用1000或2000而不是50。

答案 1 :(得分:1)

setTimeout 在间隔后调用一次函数,然后不再调用它。我认为最好使用 setInterval 。然后将在间隔中调用该函数。

你可以尝试

$(document).ready( function(){
   setInterval(function () {
       recursiveGenerateTree(objNode.NodeList[cntLi], spnApplyClass, '', objEditParam)
   }, 50);
});

答案 2 :(得分:0)

这可能发生的一个原因是你的objNode为空,因此当函数准备调用时,它的评估会停止它。为了更好地解释,在调用recursiveGenerateTree函数之前,需要首先评估其参数。如果上述符号为null,则其成员访问.NodeList[cntLi]将失败。

答案 3 :(得分:-3)

我猜你必须把这个函数放在setTimeOut

之外

这样的事情:

function myfunction(){
  recursiveGenerateTree(objNode.NodeList[cntLi], spnApplyClass, '', objEditParam)
}

setTimeout( myfunction , 50);