2013-06-19 2 views
0

Я хочу, чтобы мой обратный отсчет остановился на нажатие кнопки отправки, я искал на некоторых страницах, , но ничего не нашел. Вот код, я хочу остановиться на мышиОстановить обратный отсчет при нажатии

function countDown (count) { 
    if (count > 0) { 
    var d = document.getElementById("countDiv"); 
    d.innerHTML = count; 
    setTimeout (function() { countDown(count-1); }, 1000); 
    document.getElementById('tiempo').value = count; 
    } 
    else 
    document.location = "timeover.php"; 
} 
document.getElementById("palabra").focus(); 
countDown(5); 
</script> 
+0

Что делает ваш код? Что вы ожидаете от этого? Где кнопка отправки? Где ваш вопрос? – Teemu

ответ

0

Попробуйте что-то вроде этого:

var stopped = false; 
function countDown (count) { 
    if (count > 0) { 
    var d = document.getElementById("countDiv"); 
    d.innerHTML = count; 
    document.getElementById('tiempo').value = count; 
    if (!stopped) { 
    setTimeout (function() { countDown(count-1); }, 1000); 
    } 
    } 
    else 
    document.location = "timeover.php"; 
} 
document.getElementById("palabra").focus(); 
document.getElementById("mySubmitId").onclick = function() { 
    stopped = true; 
}; 
countDown(5); 
+0

И где декремент для 'count';)? – Teemu

+0

@Teemu, но обратный отсчет должен быть просто остановлен. –

+1

Я бы это сделал, но кажется, что OP хочет показать оставшееся время ('count') в элементе. В вашем коде этот «дисплей» остается на '4'. – Teemu

0

Вы должны сохранить ссылку на тайм-аут (на самом деле возвращают значение тайм-аута будет номер) и использовать его для отмены таймаута.

var timeout = window.setTimeout(function() { 
    // do something 
}, 1000); 

// clear timeout 
window.clearTimeout(timeout); 

Возможно, у вас есть идея. Кстати, вам, вероятно, стоит посмотреть на метод setInterval, так как в этой ситуации было бы лучше. Интервал будет «галочкой» до тех пор, пока вы его не отмените.

Смежные вопросы