Javascript:如何随机更改背景?

时间:2014-09-07 20:25:32

标签: javascript random colors

我无法找到此代码的问题所在:

<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>   

有人可以解释我的错误吗?

2 个答案:

答案 0 :(得分:4)

setTimeout(CambiaColore(),2000);错误

setTimeout( CambiaColore, 2000 );

说明:

SetTimeout的第一个参数应该是函数。你明白了但是函数名后面的括号意味着它的执行(我的英文不好,你)。因此,在你的情况下,它来到递归和所有。最大堆栈调用,错误..所以我理解,你不需要在那里执行func但是推迟执行。我在上面展示了如何做到这一点。

答案 1 :(得分:1)

另一种可能性是将其包装在匿名函数中:

setTimeout ( function(){ CambiaColore() } , 2000 ) ;