qq_迸發激情_0
2017-05-27 12:01:29
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>計時器</title><script type="text/javascript">? var num=0;? setTimeout(function startCount() {? ? document.getElementById('count').value=num;? ? num=num+1;? ? setTimeout("startCount()",1000);?? },1000);</script></head><body><form><input type="text" id="count" /></form></body></html>
3 回答


小郎Lie
TA貢獻2條經驗 獲得超0個贊
我也很好奇為什么必須把setTimeout("startCount()", 1000); 改成setTimeout(startCount, 1000);?
雖然調試的結果確實是當使用setTimeout("startCount()", 1000);的時候,瀏覽器居然會報錯VM325:1 Uncaught ReferenceError: startCount is not defined ? ?at <anonymous>:1:1
更神奇的是,如果我用setTimeout(startCount(),1000); 調試運行居然會一直調用startCount(),導致瀏覽器報錯setTimeOut.html:8
求大神解答

qq_迸發激情_0
TA貢獻1條經驗 獲得超0個贊
為什么要這樣改
setTimeout("startCount()", 1000);?
改成
setTimeout(startCount, 1000);?
上面的不是等效的嗎?

hahhhha
TA貢獻50條經驗 獲得超32個贊
下面的代碼試一下效果。
<!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> </body> <script?type="text/javascript"> (function(){ var?ele?=?document.getElementById('count'), num?=?0; var?startCount?=function(){ ele.value?=?num++; setTimeout(startCount,1000);? }; startCount(); }()); </script> </html>
添加回答
舉報
0/150
提交
取消