setTimeout只工作一次。为什么?

时间:2016-06-19 23:20:41

标签: javascript jquery html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title></title>    
        <script>
         function move(){
  var i =10;
  var demo = document.getElementById('demo3');
  demo.innerHTML = i;

  function run(){
    demo.innerHTML = ++i ;
  }
  var id = setTimeout(run,1000);
}

        </script>
      </head>
      <body>
         <div class="main-content">
             <div class="micro"><p id="demo3"></p></div>
             <input type="button" class="btn" id="start" onclick="move()" name="name" value="Start">
         </div>
      </body>
    </html>

我的代码无法正常运行。它应该连续增加i的值,但它只在一次后停止。请帮忙。

3 个答案:

答案 0 :(得分:1)

因为setTimeout不是你需要的方法,实际上它在指定的dalay之后执行一次代码片段,setInterval可能会为你的任务执行: https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval

答案 1 :(得分:1)

将setTimeout更改为setInterval,它应该可以工作。

答案 2 :(得分:1)

这是Fiddle Demo

setTimeout 运行一次代码。您希望使用 setInterval 方法重复运行代码。