Я работаю над детской игрой с таймером обратного отсчета. Если пользователь сопоставляет все элементы до истечения времени таймера, выдается сообщение «Вы выиграли!» появляется всплывающее окно. Если они не совпадают со всеми элементами до того, как таймер достигнет нуля, появится всплывающее окно «Извините, вы потеряли».
Проблема, с которой я столкнулся, заключается в том, что часы не прекращают обратный отсчет после того, как пользователь выиграл игру, а сообщение «You Won!» появляется всплывающее окно, поэтому всплывающее окно «Извините, вы потеряли» все еще появляется, когда таймер достигает нуля.
Вот мой код:
$("#startClock").click( function(){
var timer;
var counter = 4;
var winner = 0;
var done = true;
$("#boat").draggable({
revert: "invalid", containment: "#wrapper",
start: function(event, ui){
if(!done) return false;
},
stop: function(event, ui){
if($(".correct").length == $(".drop").length){
setTimeout(function(){
$("<div title='You did it!'>You won!</div>").dialog();
},500);
var winner = 1;
}
}
});
if(!timer){
timer = setInterval(function() {
counter--;
if (counter >= 0) {
span = document.getElementById("count");
span.innerHTML = counter;
}
if (counter === 0 && winner === 0) {
$("<div title='Game Over'>Sorry, game over!</div>").dialog();
clearInterval(counter);
}
}, 1000);
}
});
Просмотреть мою демо-игру здесь (Нажмите "Запустить часы" в правом верхнем углу.) Любая помощь ценится. Спасибо!
Лорен