У меня есть следующая функция:
$(document).ready(function() {
$('#p').click(function() {
$('#s1').hide();
gameStart(); <-starts timer
$('#s2').show();
});
$('.b4').click(function() {
clearInterval(tI); <-stops the time
});
$('#r').click(function() {
tI = setInterval("setTimer()", 1000); <-not working, should continue the timer again
});
});
При нажатии на div #p
запускается игра с таймером, все это работает.Теперь, если я нажму на div .b4
, он остановит / приостановит таймер, это также работает.Проблема в том, чтобы снова запустить таймер, продолжая с того места, где он был остановлен.
Я пробовал tI = setInterval("setTimer()", 1000);
при нажатии на div #r
, но проблема в том, что он запустит таймер, ноэто не будет продолжаться с момента остановки.Это будет продолжаться, но с того времени, когда оно должно быть, если оно не было остановлено / приостановлено.
ТАК, как я могу это исправить?Я хочу приостановить время (думаю, что у меня есть эта часть справа), а затем продолжить его снова, нажав #r
Вот как строится моя функция таймера:
function gameStart() {
setBlocks();
tM = $('#a1 div.tm');
hS = $('#a1 div.hs');
oT = new Date();
tI = setInterval("setTimer()", 1000);
setHs();
$('.ht').click(hint);
$('.b3').click(reset);
}
//Set timer
function setTimer() {
var n = new Date();
tM.text(getTimeText(n.getTime() - oT.getTime()));
}
//Build timer
function getTimeText(v) {
var vH = Math.floor(v / 3600000);
var vM = Math.floor((v - (vH * 3600000)) / 60000);
var vS = Math.floor((v - (vH * 3600000) - (vM * 60000)) / 1000);
return set2Digit(vH) + ':' + set2Digit(vM) + ':' + set2Digit(vS);
}
function set2Digit(ov) {
var os = '0' + ov;
return os.substr(os.length - 2, 2);
}
-РЕДАКТИРОВАТЬ -
С помощью этого HTML я получаю время, чтобы показать: <div class="tm">00:00:00</div>
- EDIT2-- Хорошо, создал новую функцию.Он захватывает приостановленное время, поэтому с этого момента время должно продолжаться:
$('#r').click(function() {
$('#s1').hide();
tI = setInterval("continueTimer()", 1000); //NEW
$('#s2').show();
});
//Test
function continueTimer() {
divObj = document.getElementById("tm");
tM.text(divObj.innerText);
}
В данный момент время приостанавливается, но не продолжается, когда запускается эта функция ... Так как мне запуститьтаймер с этого момента?Я думаю, что я близко