单次点击开始时钟,程序正常运行,点击停止时钟,时钟立刻停止;多次点击开始时钟后,程序运行,点击停止时钟,程序有响应,但是时钟未停止。请问这是什么情况?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>页面上显示时钟:</p>
<p id="demo"></p>
<button id='myStopFunction'>停止时钟</button>
<button onclick="mvToLft()">开始时钟</button>
<script>
function mvToLft(){
var myVar=setInterval(function(){myTimer()},1000);
document.getElementById('myStopFunction').onclick = function(){
clearInterval(myVar);
console.log(1);
};
}
function myTimer(){
console.log(0);
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("demo").innerHTML=t;
}
</script>
</body>
</html>
// 你写的 代码太萌, 看看这符合要求吗, 建议 看一下 函数 闭包 和 setInterval (返回的是 数字id),
多次执行 开始 setInterval 会多次调用, 造成 myVar 只保留最后一次 setInterval 返回的id, 最终造成调用clear函数,只清楚除最后一次。
然而还有其他执行的 setInterval 队列。