И снова секундомер
Пишу игру на яваскрипт, при нажатии на кнопку "Новая игра" запускается секундомер. Взял код by ostgals
function start_timer() { End=0; secs = 0; document.getElementById('timer').innerHTML = secs + ' сек.'; if (timer) clearInterval(timer); var timer = setInterval( function () { if (End==1) return; secs++; document.getElementById('timer').innerHTML = secs + ' сек.'; }, 1000 ); } После успешного завершения игры таймер останавливается с помощью End=1; Все работает. Проблема в том, что если юзер несколько раз нажмет кнопку "Новая игра" (чтобы может выбрать начальную комбинацию поприятнее), секундомер начинает скакать как бешенный. Видимо, переменная secs получает пинки от нескольких функций. Как решить эту проблему? |
Цитата:
Цитата:
|
Переделал не помогает. Скачет как бешенный
function start_timer() { if (timer) clearInterval(timer); secs = 0; document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.'; var timer = setInterval( function () { secs++; document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.'; }, 1000 ); } |
alexan0308, сделай полный пример. Так ничего не понятно всё равно...
|
alexan0308,
Сделайте var timer глобальным и будет вам счастье ... <script type="text/javascript"> var timer; function start_timer() { if (timer) clearInterval(timer); secs = 0; document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.'; timer = setInterval( function () { secs++; document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.'; }, 1000 ); } </script> <input type="button" name="" value="test" onclick="start_timer()"/> <div id="timer"></div> |
Цитата:
function stop_timer() { if (timer) clearInterval(timer); } <input type='button' onClick='stop_timer()' value='Завершить игру'> |
Часовой пояс GMT +3, время: 04:45. |