Сохранять id таймера, возвращаемое из
setInterval()
. При наступлении события
останавливать тот interval, и через нужную паузу запускать новый с той же функцией.
Второй вариант – внутри вызываемой функции делать проверку некого флага паузы. Если тот установлен, ничего не выполнять. При наступлении события выставлять тот флаг и через N секунд снимать его:
Примерно такvar flag = false;
this.next = function() {
that.img[i].classList.remove("activeImg");
i++;
if (i >= that.img.length) i = 0;
that.img[i].classList.add("activeImg");
};
setInterval(
function() {
if(flag) return;
that.next()
},
Math.floor(Math.random() * (5000 - 2000 + 1)) + 2000
);
function onEvent(){
flag = true;
setTimeout(()=>{ flag=false}, 3000);
}