我写了以下代码,当一个按钮被点击时运行计时器,当另一个按钮被点击时停止计时器。但是,当代码第一次加载时,或者当我单击“停止计时器”时,计时器就会工作,但当我单击“开始时间”时,计时器就会开始运行,并且不会在再次单击“停止时间”按钮时停止。代码如下:
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>
发布于 2020-07-15 20:38:58
var myVar在setTime中重新声明了myVar,导致它隐藏了clearInterval正在使用的myVar的外部声明。
解决方案是在setTime中省略var关键字。
您可能还希望在启动计时器之前停止计时器。在查看Stop按钮是否正常工作之前,按两次Start按钮检查是否正确。
https://stackoverflow.com/questions/62914833
复制相似问题