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
提交
取消
