2012-06-26 9 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> 

이하 그러나 내가 사업부를 추가하고 온로드 = "annoyingEffect (0)"그 안에 함수를 삽입하려고하면, 그것은 작동하지 않습니다. 내가 뭘 놓치고있어?

+0

이 보인다 나를 위해 일하는 : 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

고맙습니다 메이트에서 문자열로 함수를 전달해야합니다 완벽하게 작동했습니다 :-) –

+0

아무런 문제가 없지만, 나는 그것이 다행이라고 생각합니다. :) – ClydeFrog

0

나는이 줄

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

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

기능 매개 변수 (문자열

+0

당신은 트릭을 했어하지만 내 필요에 맞게 약간의 코드를 변경해야만했다 고 – 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> 

자바 스크립트가

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);} 
관련 문제