Вам необходимо сохранить значение, которое вернуло из setInterval
, и передать , который , в ваш вызов на clearInterval
.
var idForClear = setInterval(updateClock, 1000);
, а затем
clearInterval(idForClear);
Это будет намного проще, если вы откажетесь от встроенных обработчиков уровня 0 и сделаете что-то подобное
<button id="stopBtn" type ="button">Stop Clock</button>
<button id="startBtn" type="button">Start Clock</button>
var idForClear;
document.getElementById("startBtn").onclick = function() {
idForClear = setInterval(updateClock, 1000);
};
document.getElementById("stopBtn").onclick = function() {
clearInterval(idForClear);
};
Просто убедитесь, что вы поместили этот скрипт в внизу тела вашей страницы, чтобы убедиться, что document.getElementById
не вызывается до того, как вы будете готовы.
Также обычно считается злым называть setTimeout
или setInterval
строкой. Когда вы не в встроенном обработчике, вместо этого
setInterval('updateClock()', 1000);
Вы хотите передать в функцию
setInterval(function() { updateClock(); }, 1000);
Но, конечно же, updateClock - это тоже функция, поэтому вышеприведенный код более шумно эквивалентен
setInterval(updateClock, 1000);