clearInterval в функции - PullRequest
       8

clearInterval в функции

0 голосов
/ 19 сентября 2018

Я пытаюсь установить и очистить интервалы для карусели с двумя функциями: playX и stopX.

var timerX; 

function playX (timerX, B, C, D, E) {    
setInterval(function() { away(timerX, B, C, D, E); },3000);  
}

function stopX (timerX, B, C, D, E) {  
clearInterval(timerX);   
console.log('STOP: CLEARED: timer: '+timerX);
} 

Хотя он запускается, продолжает и продолжает, но неостановка, несмотря на вызываемую функцию:

Console:STOP: CLEARED: timer: timerX

Я понимаю, что таймер var должен быть вне функций, и он больше нигде не назначается.Несмотря на это, это не работает.

Я рассмотрел ряд вопросов по этой проблеме, но ни один из них не имеет ответов, которые помогут в этом случае.

1 Ответ

0 голосов
/ 19 сентября 2018

Значение, возвращаемое setInterval, должно использоваться в качестве аргумента для clearInterval.

var timerX; 
var intervalId;

function playX(timerX, B, C, D, E) {    
  intervalId = setInterval(function() { away(timerX, B, C, D, E); }, 3000);  
}

function stopX(timerX, B, C, D, E) {  
  clearInterval(intervalId);   
  console.log('STOP: CLEARED: timer: '+timerX);
} 
...