У меня есть код, как показано ниже, который использовался для запуска и остановки таймера. Он работал нормально, если щелкнуть один раз при запуске и остановке. Как, если я нажимаю старт более одного раза и как мне остановить «предыдущий созданный» setInterval?Как очистить существующий setInterval?
<html>
<head>
<script>
var myVar;
function myStartFunction() {
myVar = setInterval(function() {
myTimer();
}, 1000);
}
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML = t;
}
function myStopFunction() {
clearInterval(myVar);
}
</script>
</head>
<body>
<p id="demo"></p>
<button onclick="myStopFunction()">Stop time</button>
<button onclick="myStartFunction()">Start time</button>
</body>
</html>
Вы видите проблемы, с первого взгляда не похоже, что возникнут какие-либо ошибки. –
Кажется, вам нужен только один таймер, если myVar действителен, myStartFunction может просто вернуться; – Andrew
Почему не просто 'myVar = setInterval (myTimer);' вместо того, чтобы его обернуть? – 6502