2011-07-21 8 views
1

JavaScriptが新しくて、etInterval()で作業するのに問題があります。アナログ時計用のsetInterval()

私は練習としてアナログ時計を作成しています。私はそれに応じて矢印を回転させることによって時間を取得して表示する機能setTime()を持っています。

この機能を何度も実行したいと思います。私はこの方法と使用方法を理解したいと思います

$(document).ready(function(){ 

     function setTime(){ 
      var d = new Date(); 
      var hour = d.getHours(); 
      var minute = d.getMinutes(); 
      var hourRotation = hour * 30 + (minute/2); 
      var minuteRotation = minute * 6; 
      $("#small").css({ 
       "-webkit-transform": "rotate(" + hourRotation + "deg)", 
       "-moz-transform": "rotate(" + hourRotation + "deg)", 
       "-o-transform": "rotate(" + hourRotation + "deg)" 
      }); 
      $("#big").css({ 
       "-webkit-transform": "rotate(" + minuteRotation + "deg)", 
       "-moz-transform": "rotate(" + minuteRotation + "deg)", 
       "-o-transform": "rotate(" + minuteRotation + "deg)" 
      }); 
     }; 
     function clockStart(){ 
      setInterval(setTime(),1000); 
      setTime(); 
     } 
     clockStart(); 
    }); 

は、ここに私のコードです。私が見つけた例はとても分かりましたが、それでも動作させることはできません。

答えて

3

setInterval()で関数呼び出しを行っています。あなたが何をしたいか

です:あなたがsetInterval機能あなたを呼び出すとき、あなたはパラメータとして関数参照を

setInterval(setTime,1000); 
+0

[OK]を右:あなたがする必要がどのような

は、このような機能(「setTime 『)のこの名前の関数コール(』 setTime()」)を置き換えるです!非常にありがとう、時には最も単純なものがあなたをつかまえることができます。良い一日。 –

2

渡すことはありませんが、それは、戻り値です。
あなたが使用する必要があります。

setInterval(setTime,1000); 

または

setInterval(function(){setTime()},1000); 
2

機能ラインsetInterval(setTime(),1000);setTime()setInterval()関数が呼び出される前に評価取得され、そしてsetTime()の評価結果が渡されsetInterval()は引数として渡される関数istelfではなく、引数として機能します。 setInterval(setTime, 1000);

関連する問題