2014-09-05 17 views
-3

是什麼導致setInterval不會在fadeOut中被調用?setInterval不會在fadeOut中被調用

<!doctype html> 
<html> 
<head> 
    <title>Exercise</title> 
    <style> 
     #box { 
     } 
    </style> 
</head> 
<body> 
    <div id="box"></div> 
    <script src="jquery.js"></script> 
    <script> 
     $(function() { 
      $("#box").fadeOut(3000, function() { 
       setInterval("UpdateTime()", 100); 
      }); 
     }); 

     function GetTime() { 
      var now = new Date(); 
      var obj = { 
       Hour: now.getHours(), 
       Minute: now.getMinutes(), 
       Second: now.getSeconds() 
      }; 

      return obj; 
     } 

     function UpdateTime() { 
      var box = $("#box"); 

      var obj = GetTime(); 
      if (obj.Hour < 10) 
       obj.Hour = "0" + obj.Hour; 
      if (obj.Minute < 10) 
       obj.Minute = "0" + obj.Minute; 
      if (obj.Second < 10) 
       obj.Second = "0" + obj.Second; 

      box.text(obj.Hour + ":" + obj.Minute + ":" + obj.Second); 
     } 

    </script> 
</body> 
</html> 
+3

'的setInterval(錄入,100);' – melancia 2014-09-05 22:02:32

+0

你是隱藏用盒子'淡出()'那麼誰是顯示回來? – 2014-09-06 01:11:09

+0

請參閱http://jsfiddle.net/arunpjohny/hee5um81/1/或http://jsfiddle.net/arunpjohny/hee5um81/2/ – 2014-09-06 01:11:41

回答

1

設置setInterval()的人建議之前:

$("#box").fadeIn(3000, function() { 
    setInterval(UpdateTime, 100); 
}); 

和(If您想要顯示時間)將.fadeOut()更改爲.fadeIn()(或刪除完全消失)。

小提琴:http://jsfiddle.net/cu3s5zwt/

1

避免在setInterval中使用字符串。喜歡傳遞一個函數。

你可以這樣來做:

setInterval(UpdateTime, 100); 

,或者如果你需要一些參數:

setInterval(function(){ 
    UpdateTime(argA, argB); 
}, 100); 
+0

你有沒有試過你的答案? – 2014-09-05 22:26:23

+0

@氰化食品你認爲它有什麼不對? – Ian 2014-09-05 22:28:52

+0

@氰化食品,爲什麼它不起作用? UpdateTime沒有被調用? – patricK 2014-09-05 22:37:17