javascript setInterval只工作一次?

时间:2018-05-28 06:52:29

标签: javascript

我需要在html代码中显示当前时间,但javascript代码只能使用一次吗?

 $(document).ready(function () {
     function updateClock(ele){
         var current_time = new Date();
         var current_time_str = current_time.toLocaleTimeString();
         ele.text(current_time_str);
         console.log(current_time_str);
     }

   setInterval(updateClock($('#clock')) , 1000 );
 })

它与其他语言(如C,Object-C或Python)的工作方式不同,这对我来说是如此误导。

2 个答案:

答案 0 :(得分:3)

您需要将调用部分包装在一个函数中,因为它只被调用一次并返回undefined作为调用值。

setInterval(() => updateClock($('#clock')), 1000);

另一种可能性是使用setInterval

的第三个和后面的参数
setInterval(updateClock, 1000, $('#clock'));

答案 1 :(得分:0)

updateClock置于setInterval回调函数



$(document).ready(function() {
  function updateClock(ele) {
    var current_time = new Date();
    var current_time_str = current_time.toLocaleTimeString();
    ele.text(current_time_str);
  }

  setInterval(function() {
    updateClock($('#clock'))
  }, 1000);
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="clock"></div>
&#13;
&#13;
&#13;