定时器bug问题

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <script type="text/javascript">

    var time;

    var i=0;

    function c()

    {

        time=setInterval("d()",1000)

    }

    function d()

    {

        (document.getElementById('cd')).value=i++;


    }

    function f()

    {

        clearInterval(time);

    }

    </script>

</head>

<body>

    <input id='cd' type ="button"  value ="number">

    <input type ="button"  value ="开始"  onclick="c()">

    <input type ="button"  value ="停止"  onclick="f()">

</body>

</html>

点了几次开始,数字就变得快的起来。我知道这是个bug,想知道为什么会越来越快?
希望各位大神说的详细点,新手一枚,谢谢。

杨__羊羊
浏览 581回答 1
1回答

ITMISS

在&nbsp;c()&nbsp;里,如果你没清除上一次的 interval,会定义成多个,而且由于&nbsp;time&nbsp;被覆盖,以前定义的无法清除。稍改改就行function&nbsp;c()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;clearInterval(time); &nbsp;&nbsp;&nbsp;&nbsp;time&nbsp;=&nbsp;setInterval("d()",&nbsp;1000); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript