为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能取消计时

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>编程练习8</title>  
</head>
<body> 
    <p>
        <b id="seconds">5</b>秒后进入新界面&nbsp;
        <a href="javascript:goBack();">返回</a>
    </p>
    <form>
        <input type="button" value="取消倒计时" onclick="quxiao()">
    </form>
    <script type = "text/javascript">
        function jisi(){
        var sec = document.getElementById("seconds");
        var i = 5;
        var timer = setInterval(function(){
        i--;
        sec.innerHTML = i;
        if(i==1){
            window.location.href =  "http://www.imooc.com/";
        }
    },1000);
        }
        jisi();
        function quxiao(){
            clearInterval(timer);
        }
    </script>
<!--发现如果建立函数jisi则不能建立函数quxiao了,
建立函数就只能使用onclick="clearInterval(timer)"
使用quxiao函数的话就必须不能给上面的代码建立成一个jisi函数
-->
</body>
</html>


正在回答

1 回答

你把timer的定义写在jishi函数外面,因为这是一个函数作用域,别的函数获取不到这个变量的

var timer;
        function jisi(){
        var sec = document.getElementById("seconds");
        var i = 5;
         timer = setInterval(function(){
        i--;
        sec.innerHTML = i;
        if(i==1){
            window.location.href =  "http://www.imooc.com/";
        }
    },1000);
        }
        jisi();
        function quxiao(){
            clearInterval(timer);
        }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不能取消计时

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信