问答详情
源自:8-5 计时器setTimeout()

onclick事件点击后为什么使setTimeout(),不断循环

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var num=0;
function numCount(){
 document.getElementById('txt').value=num;
 num=num+1;
 setTimeout("numCount()",1000);
 }
</script>
</head>
<body>
<form>
<input type="text" id="txt" />
<input type="button" value="Start" />
</form>
</body>
</html>


点击事件不是只执行一次吗,底层是怎么运作的?

提问者:ponydg 2018-06-03 01:06

个回答

  • 枫芒i
    2018-06-15 16:59:33
    已采纳

    setTimeout()计时是只执行一次numCout()函数,但是

    function numCount(){
     document.getElementById('txt').value=num;
     num=num+1;
     setTimeout("numCount()",1000);
     }

    这个函数内部又嵌套执行一次,这样就一直循坏嵌套执行下去啦。

  • ponydg
    2018-06-03 01:07:05

    <!DOCTYPE HTML>
    <html>
    <head>
    <script type="text/javascript">
    var num=0;
    function numCount(){
     document.getElementById('txt').value=num;
     num=num+1;
     setTimeout("numCount()",1000);
     }
    </script>
    </head>
    <body>
    <form>
    <input type="text" id="txt" />
    <input type="button" value="Start" onClick="numCount()" />
    </form>
    </body>
    </html>