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

为什么生成的div元素呈指数增长?

为什么生成的div元素呈指数增长?

慕数据4485210 2016-03-11 15:57:21
function create(){ var someElem = document.createElement("div"); someElem.style.position = "absolute"; someElem.style.left = Math.random()*1000+"px"; someElem.style.top = Math.random()*1000+"px"; someElem.style.width = "30px"; someElem.style.height = "30px"; someElem.style.backgroundColor = "green"; var bo = document.getElementsByTagName("body"); bo[0].appendChild(someElem); var c = setInterval(create,5000); }调用该函数,为什么每隔五秒钟生成的div都翻倍了?原意是想让每隔5秒钟就在屏幕生成一个div的
查看完整描述

3 回答

?
woshiajuana

TA贡献211条经验 获得超152个赞

因为你create()里面的这句话var c = setInterval(create,5000);

setInterval()函数是无限的执行下去

用setTimeout(),它是执行一次

你想用setInterval()话,就不能在函数create内调用,要移到外边来即可

查看完整回答
1 反对 回复 2016-03-11
?
qq_大寒_2

TA贡献173条经验 获得超185个赞

估计我理解错你的意思了,问题是指数增长怎么得出来的呢?怎么测试呈现是报错呢。

var c = setInterval(create,5000);
setInterval里面create是函数名,一个是时间(毫秒)。

函数名直接调用在外面即可。这样屏幕上随机生成一个,如果指数增长,没一会就布满屏幕,最后游览器卡死。。

查看完整回答
反对 回复 2016-03-12
  • 3 回答
  • 0 关注
  • 1883 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信