猿问

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

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的

慕数据4485210
浏览 1884回答 3
3回答

woshiajuana

因为你create()里面的这句话var c = setInterval(create,5000);setInterval()函数是无限的执行下去用setTimeout(),它是执行一次你想用setInterval()话,就不能在函数create内调用,要移到外边来即可

qq_大寒_2

估计我理解错你的意思了,问题是指数增长怎么得出来的呢?怎么测试呈现是报错呢。var c = setInterval(create,5000); setInterval里面create是函数名,一个是时间(毫秒)。函数名直接调用在外面即可。这样屏幕上随机生成一个,如果指数增长,没一会就布满屏幕,最后游览器卡死。。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答