@Dreaded

Почему не срабатывает остановка таймера?

Не могу понять, почему при повторном нажатии на кнопку не срабатывает остановка первого таймера ? Два таймера тикают одновременно
var buttonOne = document.querySelector('.go');

function Timer(selector, time){
	
	var elem = document.querySelector(selector);
	var timer;
	var object = this;

	this.start = function() {
		timer = setInterval(this.tick, 1000);
	}

	this.stop = function() {
		clearInterval(timer);
	}

	this.tick = function() {
		if (time > 0) {
			time--;
			var hours = Math.floor(time / 3600);
			var minutes = Math.floor((time - (3600 * hours))/60);
			var seconds = time - hours * 3600 - minutes * 60;
			text = hours + ':' + minutes + ':' + seconds;
			document.querySelector('.time').innerHTML = text;	
		} else {
			object.stop;
		}
	}
}


buttonOne.onclick = function(){
	var userInput = document.querySelector('.seconds');
	var time = userInput.value;
	var timer = new Timer('.time', time)
	timer.stop();
	timer.start();
}
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 2
qork
@qork
{ background: #F00B42 }
Потому что новому объекту Timer, создаваемый при клике на .go, недоступен интервал timer. У каждого объекта они закрыты в области видимости.
Ответ написан
@cloudz
потому что после остановки вы тут же его включаете опять

timer.stop();
  timer.start();
Ответ написан
Ваш ответ на вопрос

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

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