停止后调用间隔

时间:2019-03-12 08:55:34

标签: javascript

在javascript中,如果您将一个变量设置为时间间隔并清除它,是否有办法将其重新打开?谢谢。如果您需要代码,请询问。我已经尝试过仅输入间隔名称,但这会返回一个数字。我也尝试过将其作为一个函数,该函数会返回错误。

var on = false;
var time = 0

function toggle() {
  if (on === false) {
    start()
    on = true
  } else {
    stop()
    on = false
  }
}

function start() {
  var interval = window.setInterval(function() {
    add()
  }, 1000)
  console.log('1')

}

function stop() {
  clearInterval(interval);
  console.log('2')
}

function add() {
  time = time + 1;
  document.getElementById('time').innerHTML = time;
}
<div id='time'></div>
<button onClick="toggle()">Toggle</button>

2 个答案:

答案 0 :(得分:0)

将启动 setInterval 的代码移动到函数中。

清除间隔,然后再次调用该函数。

清除间隔后就无法重新启动它。

答案 1 :(得分:0)

我认为您无需清除并重新设置间隔。

这种方法怎么样:

var start = document.getElementById('start')
var stop = document.getElementById('stop')
var time = document.getElementById('time')
var isRunning = false

start.onclick = function() {
  isRunning = true
}

stop.onclick = function() {
  isRunning = false
}


function func() {
  if (isRunning) {
    time.innerHTML = +time.innerHTML + 1
  }
}
setInterval(func, 1000)
<button id="start">start</button>
<button id="stop">stop</button>
<div id="time">0</div>