Вы устанавливаете переменные минут и секунд внутри своей функции, чтобы они каждый раз получали одни и те же значения.
var cookTime = 1;
var presentTime = Number(cookTime) + ":00";
var timeArray = presentTime.split(/[:]+/);
// set your minute and second counters
var min = parseInt(timeArray[0]);
var sec = parseInt(timeArray[1]);
$("#timerButton").on("click", function(event){
event.preventDefault();
// show initial time (using jquery since you're already using it for your click function)
$('#timer').html(presentTime);
startTimer(min, sec);
});
function startTimer(m, s) {
s--;
if (s<0) {
s = 59;
m--;
}
if (m>=0) {
$('#timer').html(m+':'+pad2(s));
// pass the current values for m and s into startTimer
setTimeout(function(){
startTimer(m,s);
}, 1000);
}
else alert('time\'s up');
}
// shorter version of your checkSecond function
function pad2(number) {
return (number < 10 ? '0' : '') + number;
}
Проверьте скрипку: https://jsfiddle.net/j3txcjmz/