@cedFlame

Не работает clearInterval в javascript?

Есть функцию которая у одинаковых блоков с разными айди меняет прозрачность а затем удаляет. Всё это произходит с интервалом, но когда блоки заканчиваются инкримент продолжает расти, а clearInterval не работает.
Вот код:
var id
var j = 1
function remove(){
id = setInterval(function () {
                $('.i-am-os[data-id="' + j + '"]').animate({
                    opacity: '0',
                    color: '#00000000'
                }, 100, function () {
                    $(this).remove()
                })
                j++
            }, 100);
            if(j>22){
                clearInterval(id);
            }
}
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
vool
@vool
Разработчик
var id
var j = 1
function remove(){
id = setInterval(function () {
          $('.i-am-os[data-id="' + j + '"]').animate({
                 opacity: '0',
                 olor: '#00000000'
           }, 100, function () {
                 $(this).remove()
            })
            if(j>6){
                clearInterval(id);
            } else {
                j++
            }
  }, 1000);
}
remove()

Так будет работать))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Любите же вы сложные методы. Здесь в принципе не нужен setInterval:
(async function() {
	
	var els = $('.i-am-os[data-id]');
	
	for (var n = 0; n < els.length; n++) {
		
		await els[n].animate({ opacity: '0', color: '#00000000' }, 1000).promise();
		
		els[n].remove();
		
	}
	
})();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы