有关在javascript中运行计时器的问题



我编写了以下代码,用于在单击按钮时运行计时器,并在单击另一个按钮时停止计时器。然而,当代码加载时,以及当我单击停止计时器时,它第一次工作,但当我单击开始时间后,计时器开始运行,并且不会在再次单击停止时间按钮时停止。这是代码:

var myVar = setInterval(myTimer ,1000);
function myTimer() {
var d = new Date();
document.getElementById("demo").innerHTML = d.toLocaleTimeString();
}
function settime(){
var myVar = setInterval(myTimer ,1000);
}
<html>
<body>
<p>A script on this page starts this clock:</p>
<button onclick="clearInterval(myVar)">Stop time</button>
<button onclick="settime()">Start time</button>
<p id="demo"></p>
</body>
</html>

var myVarsetTime中重新声明myVar,使其遮蔽clearInterval正在使用的myVar的外部声明。

解决方案是省略setTime中的var关键字。

您可能还想在启动计时器之前停止计时器。在查看Stop按钮是否工作之前,按两次Start按钮以检查其正确性。

最新更新