Я делаю викторину с Javascript с 10 вопросами для ответа через 60 секунд. Он отлично работает, если участник пытается задать вопрос в течение 50-60 секунд, но если он сделает это за более короткое время и перезапустит викторину, таймер будет работать с удвоенной скоростью. Возможно, более ранний таймер не очищается. Вот сценарий:Невозможно отменить setInterval
$(window).ready(function() {
$('#fblock').hide();
$('#sblock').show();
$('#qblock').hide();
$('.startquiz').click(function() {
qsi = 0;
score = 0;
showq(0);
$('#fblock').hide();
$('#sblock').hide();
$('#qblock').show();
var secs = 0;
var id = setInterval(function() {
secs++;
console.log(secs);
document.getElementById("timer").innerHTML++;
if (secs > 60) {
clearInterval(id);
$('#result').html(score);
$('#qblock').hide();
$('#fblock').show();
}
}, 1000);
});
$('.restartquiz').click(function() {
$('#fblock').hide();
$('#sblock').show();
$('#qblock').hide();
document.getElementById("timer").innerHTML = 0;
});
});
Я добавил недостающий '});' в конце кода, прошли через http://jsbeautifier.org, и пометили его правильно в сообщении выше для вас. –
Спасибо, я боролся с редактированием, пока вы отформатировали его. – DKumar