1

我阅读了有关计时事件的信息。我很困惑setTimeout:我在 W3Schools 上有一个示例,它每 500 毫秒运行一次。我读到setTimeout它只工作一次。关联

<head>
  <script>
    function startTime() {
      var today=new Date();
      var h=today.getHours();
      var m=today.getMinutes();
      var s=today.getSeconds();
      document.getElementById('txt').innerHTML=h+":"+m+":"+s;
      setTimeout(function(){startTime()},500);
    }
  </script>
</head>
<body onload="startTime()">
  <div id="txt"></div>
</body>
4

2 回答 2

6

该函数在内部重置计时器:

setTimeout(function(){startTime()},500);

每次运行时,它所做的最后一件事就是安排另一个迭代。

于 2012-12-24T14:09:32.247 回答
1

setTimeout 函数只工作一次。查看您的代码。在 startTime 函数中,您将在 500 毫秒内再次调用相同的函数。如果您希望它只工作一次,请不要递归调用它。或者,如果您希望它重复一段时间,请改用 setInterval。此函数返回一个 id,您可以使用它随时停止它。

于 2012-12-24T14:13:33.920 回答