setInterval
можно отменить, используя clearInterval
, а целочисленный идентификатор возвращается при вызове setInterval
.
Для переключения setInterval
- на основе счетчика, вам просто нужно переключиться на наличие (или отсутствие) этого идентификатора.
let counter = 0;
let intervalId = null;
const btn = document.getElementById('btn');
const numberPlace = document.getElementById('numberPlace');
const numberCounter = () => intervalId === null
? intervalId = setInterval(() => numberPlace.innerHTML = ++counter, 100)
: (clearInterval(intervalId), intervalId = null)
btn.addEventListener('click', numberCounter);
<button id="btn">toggle</button>
<div id="numberPlace"></div>