Есть код секундомера на JS. Старт и стоп реализованы на нажатии разных клавиш клавиатуры. 1- старт, 8- стоп. В этом случае все работает нормально.
function trim(string) { return string.replace (/\s+/g, " ").replace(/(^\s*)|(\s*)$/g, ''); }
var init=3;
var startDate;
var clocktimer;
document.getElementById("time").style.color="#fff";
Ready.onclick = function() {
init = 0;
document.clockform.clock.value='00:00.00';
document.getElementById("time").style.color="#555";
var str = trim(document.clockform.label.value);
document.getElementById('athlete').innerHTML = str;
}
Fail.onclick = function() {
if (init!=3) {
var str = trim(document.clockform.label.value);
document.getElementById('marker').innerHTML = (str===''?'':'<tr><td>'+str+': </td><td>') +
'Сход!</td></tr>' + document.getElementById('marker').innerHTML;
document.clockform.clock.value='XX:XX.XX';
document.getElementById("time").style.color="#f00";
init = 3;
var audio = new Audio('http://free84010.ispsite.ru/sound/fail.mp3');
audio.play();
}
}
function startTIME() {
var thisDate = new Date();
var t = thisDate.getTime() - startDate.getTime();
var ms = t%1000; t-=ms; ms=Math.floor(ms/10);
t = Math.floor (t/1000);
var s = t%60; t-=s;
t = Math.floor (t/60);
var m = t%60; t-=m;
t = Math.floor (t/60);
var h = t%60;
if (h<10) h='0'+h;
if (m<10) m='0'+m;
if (s<10) s='0'+s;
if (ms<10) ms='0'+ms;
if (init==1) document.clockform.clock.value = m + ':' + s + '.' + ms;
clocktimer = setTimeout("startTIME()",10);
}
addEventListener("keydown", function(eventGo) {
if (eventGo.keyCode == 49)
if (init===0) {
startDate = new Date();
startTIME();
init=1;
}
});
addEventListener("keydown", function(eventStop) {
if (eventStop.keyCode == 56)
if (init===1) {
var str = trim(document.clockform.label.value);
document.getElementById('marker').innerHTML = (str===''?'':'<tr><td>'+str+': </td><td>') +
document.clockform.clock.value + '</td></tr>' + document.getElementById('marker').innerHTML;
init = 3;
document.getElementById("time").style.color="#8ec449";
}
});
Как реализовать тоже самое по нажатию только одной клавиши, например Enter? Первый раз нажал - секундомер запустился, второй раз нажал - секундомер остановился. Пробовал написать eventStop.keyCode == 13 и eventStop.keyCode == 13, но секундомер сразу запускается и останавливается.