2

こんにちは、div の背景色を変更しようとしています。ボディの背景色を変更するスクリプトを作成しました。コードは以下です

<script>
colors = new Array('black', 'red', 'green');
function annoyingEffect(tic){
tic %= colors.length;
document.bgColor = colors[tic];
setTimeout("annoyingEffect("+(tic+1)+")", 2000);}
</script>
<body onload="annoyingEffect(0)">

</body>

しかし、div を追加してその中に onload="annoyingEffect(0)" 関数を挿入しようとすると、機能しません。私は何が欠けていますか?

4

3 に答える 3

1

body と a を変更する方法の例(http://jsfiddle.net/NSJDR/5/) を次に示し<div>ます。

<html>
    <head>
        <script type="text/javascript">
            colors = new Array('blue', 'red', 'green', 'yellow', 'brown', 'orange');

            function annoyingEffect(tic){
                tic %= colors.length;
                document.bgColor = colors[tic];
                setTimeout("annoyingEffect("+(tic+1)+")", 1000);
            }

            function annoyingEffectOnDiv(tic, divId){
                tic %= colors.length;
                divVar = document.getElementById(divId);
                divVar.style.background = colors[tic];
                setTimeout("annoyingEffectOnDiv("+(tic+1)+", '"+divId+"')", 1000);
            }

        </script>
    </head>

    <body onload="annoyingEffect(0); annoyingEffectOnDiv(2, 'divtest');">
        <div id="divtest">
            <label>HELLOOOOOA :D</label>
        </div>
    </body>
</html>​
于 2012-06-26T12:35:35.700 に答える
0

デモを参照してください: http://jsfiddle.net/rathoreahsan/Fr6tW/

JS を追加します。

document.getElementById('customid').style.background = colors[tic]; \*your div id*\

HTML

<body onload="annoyingEffect(0)">
    <div id="customid"></div>
</body> 

Javascript

colors = new Array('black', 'red', 'green');
function annoyingEffect(tic){
    tic %= colors.length;
    //document.bgColor = colors[tic];
    document.getElementById('customid').style.background = colors[tic];   
    setTimeout("annoyingEffect("+(tic+1)+")", 2000);} 
于 2012-06-26T12:35:37.897 に答える
0

このラインだと思います

setTimeout("annoyingEffect("+(tic+1)+")", 2000);

する必要があります

setTimeout(function(){ annoyingEffect(tic+1); }, 2000);

関数パラメーターは文字列として渡されません

于 2012-06-26T12:34:19.010 に答える