日期:2014-05-17  浏览次数:20670 次

js用setTimeout调用函数中的函数执行不到
本帖最后由 mingniu66 于 2013-11-22 14:05:46 编辑
window.onload = function () {
    _a();
    function _a(){   //定时后的_a()函数执行不到这里
        _b();
        window.setTimeout("_a()",3000);
    }
    function _b(){
        //_b()函数执行到这里了
    }
}

function _a(){
    //定时后的_a()函数执行到这里了
}

function _b(){
    //_里面的_b()函数没有才执行到这里了
}

  我想要的效果是每隔3秒执行_a()函数,用setTimeout之后它执行不到本身里面的_a()函数,测试之后发现它调用的是window.onload 之外的_a()函数;_b()函数里外都可以执行,优先执行里面的。
  怎么才能让定时的_a()函数调用里面的_a(),不好意,分不多。

------解决方案--------------------

<html>
<head>
<script>
window.onload = function () {
function _a(){   //定时后的_a()函数执行不到这里
alert("li a");
        _b();
        
    }
    _a();
setInterval(_a,5000)
    
    function _b(){
alert("li b");
        //_b()函数执行到这里了
    }
}

function _a(){
    //定时后的_a()函数执行到这里了
alert("wai a");
}

function _b(){
alert("wai b");
    //_里面的_b()函数没有才执行到这里了
}
</script>
</head>
<body>
</body>
</html>