У меня есть две кнопки, время показа и время остановки. когда вы нажимаете на время показа, он устанавливает setTimeout() для обновления текущего времени. когда кликнут время остановки, я хочу остановить время через 5 секунд. проблема, с которой я сталкиваюсь, заключается в том, что если я дважды нажимаю на время показа, то я нажимаю время остановки, время до тикания. Мне нужно дважды нажать время остановки, чтобы остановить время. поэтому я думаю, что есть несколько экземпляров setTimeout(), когда я нажимаю время показа несколько раз. Мне интересно, как я могу убедиться, что есть только один setTimeout(), поэтому даже время показа нажимается несколько раз, для остановки времени требуется только один раз нажать на стоп-время.javascript обрабатывает несколько экземпляров setTimeout()?
<body>
<script>
var iTimeout;
function startTime() {
var today = new Date();
var hour = today.getHours();
var min = today.getMinutes();
var sec = today.getSeconds();
document.getElementById('time').innerHTML =
hour + ":" + min + ":" + sec;
iTimeout = window.setTimeout(startTime, 1000);
}
function stopTimer() {
window.setTimeout(function() {
window.clearTimeout(iTimeout);
console.log("clear");
}, 5000);
}
</script>
</head>
<div id="time"></div>
<button onclick="stopTimer()">stop time</button>
<button onclick="startTime()">show time</button>
</body>