我有两个按钮,显示时间和停止时间。当点击显示时间时,它会设置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>