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内调用,要移到外边来即可
qq_大寒_2
TA贡献173条经验 获得超185个赞
估计我理解错你的意思了,问题是指数增长怎么得出来的呢?怎么测试呈现是报错呢。
var c = setInterval(create,5000); setInterval里面create是函数名,一个是时间(毫秒)。
函数名直接调用在外面即可。这样屏幕上随机生成一个,如果指数增长,没一会就布满屏幕,最后游览器卡死。。
添加回答
举报
0/150
提交
取消