ajax回调函数,success中执行settimeout报错

JS代码


<script>

var i = 10;

var intervalid;

intervalid = setInterval('fun()', 1000);

function fun() {

    i--;

    if (i === 0) {

        // window.location.href = 'train_order.php'; //跳转到提示信息页面

        clearInterval(intervalid);

    }

    $(".lv-ticketBookLoading span").text("" + i + "");//显示倒计秒数。

}

</script>

HTML代码


<div id="errorfrm">

    <h3>出错啦~~~</h3>

<div id="error">

    <p>系统出错,请联系管理员!</p>

    <p class="lv-ticketBookLoading">将在 <span id="mes">10</span> 秒钟后返回首页!</p>

</div>

这段代码是可以正常执行。

但是我把JS代码块放在 ajax的success回调执行时,就报错了。我就郁闷了。没找实际问题在哪


 success: function (result) {

      var i = 10;

    var intervalid;

    intervalid = setInterval('fun()', 1000);

    function fun() {

        i--;

        if (i === 0) {

            // window.location.href = 'train_order.php'; //跳转到提示信息页面

            clearInterval(intervalid);

        }

        $(".lv-ticketBookLoading span").text("" + i + "");//显示倒计秒数。

    }

 }

https://img3.mukewang.com/5c8f4f8900015e8907270363.jpg

fun 函数找不到 怪了。。。

湖上湖
浏览 691回答 1
1回答

莫回无

intervalid&nbsp;=&nbsp;setInterval(fun,&nbsp;1000);这样就行了,因为你传字符串的时候,是在全局作用域里执行的,全局作用域里没有&nbsp;fun&nbsp;,就报错了;详情戳这定时器里的回调,不要传字符串,再强调一遍,字符传回调是历史用法;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript