Loading...
tihomirj avatar tihomirj 33 Точки

Задача 3. Timer от Exercises: jQuery, DOM and Events

Колеги, ще съм признателен ако някой ми каже защо решението по-долу гърми на един тест в джъджа (83/100).

function timer() {
   let time, intervalID;
   let startBtn = $('#start-timer');
   let stopBtn = $('#stop-timer');
   startBtn.on('click',function(){
      time = -1;
      incrementTime();
      intervalID = setInterval(
         incrementTime, 1000);
      startBtn.attr('disabled',true);
      stopBtn.attr('disabled',false);

   });
   stopBtn.on('click',function () {
      clearInterval(intervalID);
      startBtn.attr('disabled',false);
      stopBtn.attr('disabled',true);

   });

   function incrementTime() {
      time++;
      let hoursSpan = $('#hours');
      let minutesSpan = $('#minutes');
      let secondsSpan = $('#seconds');

      let hours = (Math.floor( (time/(60*60)) % 24 )).toString();
      if(hours.length<2) hours="0"+hours;
      
      let minutes = (Math.floor( (time/60) % 60 )).toString();
      if(minutes.length<2) minutes="0"+minutes;

      let seconds = (Math.floor( (time) % 60 )).toString();
      if(seconds.length<2) seconds="0"+seconds;

      hoursSpan.text(hours);
      minutesSpan.text(minutes);
      secondsSpan.text(seconds);
   }
}
0
JavaScript Advanced 23/10/2016 20:10:02
annsta avatar annsta 305 Точки
Best Answer

Трябва да паузираш таймера, а не да го зануляваш. За целта трябва да извадиш първоначалното нулиране на времето от функцията на старт бутона, така че, когато го натиснеш отново, брочът да продължи от последната достигната стойност. Аз полазвам булева променлива за статуса на брояча - дали е на пауза, или брои.

1
tihomirj avatar tihomirj 33 Точки

Ох, да. Аз по инерция от задачата от лекцията. Трябва да се четат условията внимателно.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.