@Grep1

Почему не происходит отключение setInterval?

Не получается остановить setInterval при amount == 10, почему-то не срабатывает clearInterval(1), в чем может быть дело?
let leftOff = 0,
	topOff = 0,
	amount = 0,
	speed = 200;

function move(){
	if(leftOff < 200 && topOff <= 0){
		$('#one').offset({
			left: leftOff++
		});
	}else if(leftOff >= 200 && topOff < 200){
		$('#one').offset({
			top: topOff++
		});
	}else if(leftOff > 0 && topOff >= 200){
		$('#one').offset({
			left: leftOff--
		});
	}else if(leftOff <= 0 && topOff > 0){
		$('#one').offset({
			top: topOff--
		});
	}
}

setInterval(move, speed);

$('#one').click(function(event){
	if(amount === 10){
		clearInterval(1);
		$('#one').text('Вы выиграли');
		return;
	}else{
		speed -= 10;
		amount++;
		clearInterval(1);
		setInterval(move, speed);
		$('#one').text(amount);
	}
});
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
clearInterval(1);
Это какая-то шутка? Где вы такое решение проблемы нашли?
clearInterval

let leftOff = 0,
  topOff = 0,
  amount = 0,
  speed = 200,
  intervalId;

function move(){
  if(leftOff < 200 && topOff <= 0){
    $('#one').offset({
      left: leftOff++
    });
  }else if(leftOff >= 200 && topOff < 200){
    $('#one').offset({
      top: topOff++
    });
  }else if(leftOff > 0 && topOff >= 200){
    $('#one').offset({
      left: leftOff--
    });
  }else if(leftOff <= 0 && topOff > 0){
    $('#one').offset({
      top: topOff--
    });
  }
}

intervalId = setInterval(move, speed);

$('#one').click(function(event){
  if(amount === 10){
    clearInterval(intervalId);
    $('#one').text('Вы выиграли');
    return;
  }else{
    speed -= 10;
    amount++;
    clearInterval(intervalId);
    intervalId = setInterval(move, speed);
    $('#one').text(amount);
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы