2012-06-26 56 views
2

嘿,我正在嘗試更改div的背景顏色。我寫了一個腳本來改變身體的背景顏色。代碼如下在某段時間後更改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)」裏面的功能,這是行不通的。我錯過了什麼?

+0

似乎s爲我工作:http://jsfiddle.net/FH7Zx/ –

回答

1

Here's an example傳遞(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>​ 
+0

thanx隊友中傳遞函數作爲一個字符串,但我必須改變代碼以適應我的需要,但它工作完美:-) –

+0

沒問題,我很高興它的工作爲雅:) – ClydeFrog

0

我覺得這條線

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

應該

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

功能參數不是作爲字符串

+0

你必須在setTimeout – SuperMykEl

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);}