为什么要两句setTimeout("startCount()",1000);才能执行
回复 human123:外面那个延迟一秒执行startCount函数,里面那个循环执行startCount函数。外面那个主要作用就是等dom节点都加载完才执行函数。写成以下形式同样可以实现效果。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>计时器</title> </head> <body> <form> <input type="text" id="count" /> </form> <script type="text/javascript"> var num=0; function startCount() { document.getElementById('count').value=num; num=num+1; setTimeout("startCount()",1000); } startCount(); </script> </body> </html>
其实应该像讲解中的例子一样,应该设置一个按钮去启动函数,这样就比较好理解了。第二个setTimeout("startCount()",1000)相当于就是这个启动按钮,有了这句话就不用启动按钮了。有错误的地方还望指正!!
<!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>
函数里面的没有调用函数的时候是不会启动的