我找不到这段代码的问题出在哪里:
<script>
var colori = ['ffffff', 'ffbf00', 'ff4000', '4d79ff', '00c0ff', '00ff3f', 'ff7a4d', '00ff40', 'bf00ff', 'ff0040', 'ffd34d', 'a52a2a', 'bf00ff', '47adcf', '2a82a0' ];
var i;
function CambiaColore(){
i = Math.floor(Math.random() * colori.length);
var colore = '#'+colori[i];
document.body.style.background=colore;
setTimeout(CambiaColore(),2000);
};
CambiaColore();
</script>
有人可以解释一下我出了什么问题吗?
最佳答案
setTimeout(CambiaColore(),2000);
错误
setTimeout(CambiaColore, 2000);
对
说明:
SetTimeout 的第一个参数应该是函数。你明白了。但是函数名后面的括号意味着它的执行(我的英语不好,是的)。因此,在你的情况下,涉及到递归,仅此而已。最大堆栈调用,错误..所以据我了解,您不需要在那里执行 func 但推迟其执行。我在上面展示了执行此操作的正确方法。
关于Javascript:如何随机改变背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25714429/