0
我有这样的例子:“停止时间”为什么clearInterval只能使用一次?
<p id="test"></p>
<button onClick="clearInterval(myVar)">Stop time!</button>
<button onClick="setInterval(myTimer, 1000)">Start time!</button>
<script>
var myVar = setInterval(myTimer, 1000);
function myTimer() {
var d = new Date();
document.getElementById('test').innerHTML = d.toLocaleTimeString();
}
</script>
当我点击这是第一次,它应该如此,但我点击“开始时间!”后我无法停止计时器了。为什么会发生这种情况以及如何解决这个问题?
谢谢。
我不明白为什么只给一个变量赋值。它是否有变量,为什么? – super11
因为原始变量保存了返回的区间ID。设置新的时间间隔与您调用它的原始时间没有任何关系。 – epascarello
变量与任何事物无关。这里没有关系。 setInterval返回一个数字标识,表示对该间隔的引用。 JavaScript引擎不知道你在回归的时间间隔中做了什么。你可以存储它(就像你用myVar做的一样),或者你可以忽略它(就像你用onclick做的那样)。与调用方法并使其生成一个id没有任何关系。您可以调用相同的时间间隔100次,并且它们都会生成一个ID,并且这些时间间隔中的任何一个都不会与另一个时间间隔相关联。他们都是分开的。 – epascarello