Как создать и остановить нужный номер setInterval и stopInterval? - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь сделать цикл for, который позволяет мне создать требуемое число setIntervals, но есть проблема с clearInterval.

Я хочу остановить только один setInterval, но если я этого хочу, я считаю, что я должен поместить все setIntervals в переменные, верно?

Но проблема в том, что число setInterval может измениться, и я не хочу делать переключение для каждого значения этого числа и объявлять слишком много переменных, это будет бесконечно.

Есть ли другой способ остановить setIntervals один за другим?

Мой код:

var width = 0;
var progress;
$(function(){
    $.ajax({
        type : 'get',
        dataType: 'json',
        url : 'controller/game/ajaxProgressGame.php',
    }).done(function(data){
        for(let i = 0 ; i < data.length - 1; i += 2)
        {   
            goProgress = setInterval(function(){
                progressBarChose(data[i],data[i+1])
            },10);
            /*setTimeout(function(){
                clearInterval(goProgress);
            },1100);*/
        }
    });
});

function progressBarChose(idGame,percentage)
{   
    if(width >= percentage )
    {       
        clearInterval(goProgress);
    } else {
        width++;
        $('#progressBar'+idGame).css('width' , width +'%' );
        $('#progressBar'+idGame+' p').html(Math.floor(width) + '%');        
    }
}

Я хочу изменить clearInterval (goProgress) на clearInterval один за другим, потому что здесь он очищает все интервалы, и я не хочу использовать clearInterval в setTimeout.

Спасибо!

...