<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>计时器</title> </head> <script type="text/javascript"> var num=0; var i; function startCount(){ document.getElementById('count').value=num; num=num+1; i=setTimeout("startCount()",1000); } function stopCount(){ clearTimeout(i); } </script> </head> <body> <form> <input type="text" id="count" /> <input type="button" value="Start" onclick="startCount()"/> <input type="button" value="Stop" onclick="stopCount()"/> </form> </body> </html>
我猜你是觉得i的新值作用域只在第一个函数里。JS作用域跟C,C++什么的差别有点大,具体可以查查JS作用域与作用域链。
i=setTimeout("startCount()",1000);这不是赋值