启动计时器后没有按钮

时间:2014-11-15 15:12:43

标签: javascript html

我正在使用setInterval()和clearInterval()方法来定时和分别停止定时器。我正在使用两个按钮"启动计时器"和"停止计时器"。当我点击"停止计时器"按钮时间停止,点击"启动计时器"按钮停止,然后点击"停止计时器"再次按钮时间不会停止。你能帮帮我吗? 这是我的代码:

<html lang="en">
    <head>
        <title>Document</title>
    </head>
    <body>
        <p id="start"></p>
        <button onClick = "startTimer()">Start Timer </button>
        <button onClick = "stopTimer()"> Stop Timer </button>
        <script>
            var myVar = setInterval(function(){myTimer()},1000);
            function myTimer()
            {
                var time = new Date();
                var t = time.toLocaleTimeString();
                document.getElementById("start").innerHTML = t;
            }
            function startTimer()
            {
                setInterval(function(){myTimer()}, 1000);
            }
            function stopTimer()
            {
                clearInterval(myVar);
            }
        </script>
    </body>
</html>

3 个答案:

答案 0 :(得分:1)

您没有在startTimer()函数中为myVar变量指定间隔。因为stopTimer()没有清除startTimer()函数设置的间隔..

为了更安全,您可以在设置之前清除间隔。否则,如果用户多次点击开始计时器按钮,则计时器停止按钮不再工作。因为设置了新的间隔而没有清除前一个间隔,所以之前未被清除的间隔将运行...

<html lang="en">
    <head>
        <title>Document</title>
    </head>
    <body>
        <p id="start"></p>
        <button onClick = "startTimer()">Start Timer </button>
        <button onClick = "stopTimer()"> Stop Timer </button>
        <script>
            var myVar;
            startTimer();
            function myTimer()
            {
                var time = new Date();
                var t = time.toLocaleTimeString();
                document.getElementById("start").innerHTML = t;
            }
            function startTimer()
            {
                clearInterval(myVar);
                myVar = setInterval(function(){myTimer()}, 1000);
            }
            function stopTimer()
            {
                clearInterval(myVar);
            }
        </script>
    </body>
</html>

答案 1 :(得分:0)

试试这个:

function startTimer()
{
    myVar=setInterval(function(){myTimer()}, 1000);
}

答案 2 :(得分:0)

<html lang="en">
    <head>
        <title>Document</title>
    </head>
    <body>
        <p id="start"></p>
        <button onClick = "startTimer()">Start Timer </button>
        <button onClick = "stopTimer()"> Stop Timer </button>
        <script>
            var myVar = setInterval(function(){myTimer()},1000);
            function myTimer()
            {
                var time = new Date();
                var t = time.toLocaleTimeString();
                document.getElementById("start").innerHTML = t;
            }
            function startTimer()
            {
               myVar = setInterval(function(){myTimer()}, 1000);
            }
            function stopTimer()
            {
                clearInterval(myVar);
            }
        </script>
    </body>
</html>