gpt4 book ai didi

javascript - 我的记分牌上的 Javascript 计时器在变为 0 后变为 -1

转载 作者:行者123 更新时间:2023-11-28 14:38:52 25 4
gpt4 key购买 nike

我似乎在记分板上发现了一个小问题。例如,如果我将其设置为正好 1 分钟 (1:00),则它将执行 1:0-1,然后执行 0:59。我不太明白为什么要这样做,这是我的代码:

var minutes = 0;
var c = 0;
var secondes = 0;
var commence = setInterval(commencer, 1000);
clearInterval(commence);

function commencer(){
secondes -= 1;
document.getElementById('temps').innerHTML = minutes + ":" + secondes;
if (secondes < 10) {
document.getElementById('temps').innerHTML = minutes + ":" + c + secondes;
}
if (secondes <= 0) {
secondes = 60;
minutes = minutes - 1;
if (minutes < 0) {
clearInterval(commence);
minutes = 0;
secondes = 0;
clique = 0;
}
}
}

最佳答案

因为这就是你告诉它做的事情。

  • 您从 1 分 0 秒开始(实际上您没有,但我们假设您的代码已更改以匹配您的问题)。

  • 然后减去一秒,得到 1 分 -1 秒

  • 您将其写入 HTML

  • 然后执行算术来处理下溢,得到 0 分 59 秒

  • 一秒钟后,重复

改变一下顺序,它会更符合你的预期:

// Changed minutes from 0 to 1
var minutes = 1;
var c = 0;
var secondes = 0;
var commence = setInterval(commencer, 1000);

// Removed "clearInterval" call that stops the
// whole thing from running

function commencer() {
secondes -= 1;

// This has moved up
if (secondes <= 0) {
secondes = 60;
minutes = minutes - 1;
if (minutes < 0) {
clearInterval(commence);
minutes = 0;
secondes = 0;
clique = 0;
}
}

// This has moved down
document.getElementById('temps').innerHTML = minutes + ":" + secondes;
if (secondes < 10) {
document.getElementById('temps').innerHTML = minutes + ":" + c + secondes;
}
}
<span id="temps"></span>

你的新问题是下溢检查器将秒设置为 60,所以你最终得到 0:60 。我怀疑这就是你的意图。

我现在要更改if (secondes <= 0)if (secondes < 0)并更改secondes = 60secondes = 59 ,虽然我还没有验证这是正确的;我将把它作为练习留给您。

关于javascript - 我的记分牌上的 Javascript 计时器在变为 0 后变为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48794327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com