Несколько комментариев относительно вашего кода.
1) Управление событиями кнопок (действительно для всех событий)
Попробуйте ненавязчиво управлять своими событиями (хотя есть новая тенденция делатьэто встроенный, например, с React Components).Что ненавязчиво значит?Это означает, что вы определяете события своего кода вне HTML, в блоке javascript.
Например, если вы назначите id = "button-timer" для вашей кнопки, вы можете сделать что-то вроде этого:
<script>
var button = document.getElementById('button-timer');
button.addEventListener('click', myFunction);
</script>
Тогда внутри вашего myFunction
вы можете указать setTimeout.Функция setTimeout возвращает значение, которое вы можете позже использовать для приостановки / удаления таймаута с помощью функции с именем clearTimeout(<timer-reference>)
.Так что это дает вам подсказку о том, как приостановить / контролировать таймауты.
2) Вместо многих if () просто используйте оператор Switch.Таким образом, вы бы сделали что-то вроде:
switch(random_breakdown_event){
case 1 : // some code;
break;
case 3 : // some code
break;
default: // default case action
}
Так, намекая вам о том, как управлять процессом паузы / остановки,
<button id="button-timer">Start timer</button>
<script>
var timer=null;
function myFunction(){
// Your function does stuff
}
function buttonEventHandler(){
timer = setTimeout('myFunction', <some-random-time>);
}
function pauseStop(){
clearInterval(timer);
}
var button = document.getElementById('button-timer');
button.addEventListener('click', buttonEventHandler);
</script>
Это будет общая схема того, как вы будете контролироватьдействие паузы таймера в коде js.