Javascript Stopwatch

by Nikolay Petrov

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1>0</h1>
<button id="stop">stop</button>

JavaScript

/*
var delay = (function() {
  var timer = 0;
  return function(callback, ms) {
    clearTimeout(timer);
    timer = setTimeout(callback, ms);
  };
})();
*/

var h1 = document.getElementsByTagName('h1')[0],
		seconds=0,
    t;

function add() {
    seconds++;
    h1.textContent = seconds;
    timer();
}
	
function timer() {
    t = setTimeout(add, 1000);
    
}

$(document).keypress(function() {
	if (t == null) {
  	timer();
    
    //delay(function(){ clearTimeout(t); }, 5000);
    setTimeout(function(){ clearTimeout(t); }, 5000);
  }
})

document.getElementById('stop').onclick = function() {
    clearTimeout(t);
}