想实现按钮点一下计时停止,再次点击又开始,再点停止,以此类推,可为什么我的代码不能实现呢?有什么问题吗?

来源:8-4 取消计时器clearInterval()

吾爱吾师

2015-11-29 14:15

代码里面都有注释了,谁帮我看看有设么问题吗?实现不了

写回答 关注

2回答

  • echo_kinchao
    2015-11-29 15:51:49

    个人愚见  不知道 toggle 是否也可以做成这个效果呢

  • 李晓健
    2015-11-29 14:55:44
    <!DOCTYPE HTML>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>计时器</title>
        <script type="text/javascript">
            var i;
            function clock() {    //显示时间
                var time = new Date();
                document.getElementById("clock").value = time;
            }
            i = setInterval("clock()", 1000);  //(1)
            /*写在这里的目的在于一开始就能在浏览器中显示出时间,而不用人为地一开始就要点击“s  tart”按钮*/
            function runOrStop() {
                if(i){
                    clearInterval(i);
                    i=null;
                }else{
                    i = setInterval("clock()", 1000);
                }
            }
    
        </script>
    </head>
    <body>
    <form>
        <input type="text" id="clock" size="50"/>
        <input type="button" id="change" value="Stop" onclick="runOrStop()"/>
    </form>
    </body>
    </html>

    没有你想的那么复杂,你只需要判断是不是有定时器在执行就行了,有就停掉它,没有就开启一次。有一个注意点是最好不要用change做方法名,因为他是一个关键字,否则有时你会发现这个方法无效。

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

467403 学习 · 21877 问题

查看课程

相似问题