为了账号安全,请及时绑定邮箱和手机立即绑定

为什么12行和14行都要写setTimeout()呢?去掉后面的那个不行吗?

为什么12行和14行都要写setTimeout()呢?去掉后面的那个不行吗?

正在回答

3 回答

14行的代码使得页面在加载的时候延迟了一秒,然后页面加载完成,代码执行就不会有问题,否则在加载时js代码先执行时并没有获取到id为count的文本框值。也可以采取将该代码放置在body中。

1 回复 有任何疑惑可以回复我~
#1

AKii

可是我把14行注释掉了,依然可以计数,请问是怎么回事?
2015-07-13 回复 有任何疑惑可以回复我~

可以,但是存在一个问题,<head></head>中的js在body加载之前就执行了,这时还不存在id=count的文本框,所以如果14行不是用setTimeout(startCount())进行延迟执行的话,文本框不会有变化,你改成startCount()也是没用的。

当然,你也可以不在14行使用setTimeout(startCount()),那么你要另外想办法让浏览器加载完body标签内的元素之后再调用js的startCount()函数,比如在</form>与</body>之间加上<script>startCount();</script>

4 回复 有任何疑惑可以回复我~

可以,渲染的时候是后面的是首次调用startCount(),然后它再自循环,去掉的话,在body中onload或者其他达到相同效果的方法都可以

0 回复 有任何疑惑可以回复我~
#1

张小生 提问者

但是为什么我吧后面的那个setTimeout去掉运行计时功能就没有了呢?
2015-05-12 回复 有任何疑惑可以回复我~
#2

恰北北 回复 张小生 提问者

14行只掉用函数 startCount(); 没有反应也
2015-05-14 回复 有任何疑惑可以回复我~
#3

qq_飞羽_1 回复 恰北北

因为如果去掉了,那么startCount()这个函数就只有声明,没有调用了
2015-05-20 回复 有任何疑惑可以回复我~
#4

qq_飞羽_1 回复 张小生 提问者

因为如果去掉了,那么startCount()这个函数就只有声明,没有调用了
2015-05-20 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

为什么12行和14行都要写setTimeout()呢?去掉后面的那个不行吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信