gpt4 book ai didi

javascript - 如何在 JavaScript 中设置计时器持续时间?

转载 作者:行者123 更新时间:2023-12-03 07:38:34 24 4
gpt4 key购买 nike

我的计时器有一些问题。更改计时器持续时间时,我无法使计时器从新的持续时间开始。我该如何解决这个问题?请帮忙。这是我的代码:

CSS:

div {
float: left;
width: 100px;
height: 100px;
border: 1px solid;
text-align: center;
}

HTML:

<div class='session'>2</div>
<div id='increase' onclick='decrease()'>-</div>
<div id='increase' onclick='increase()'>+</div>
<div class='session' id='session' onclick='setInterval(changeSessionDuration,100)'>2</div>

JS:

var x = document.getElementsByClassName('session');
var seconds = 60;

function increase() {
for (var i = 0; i < x.length; i++) {
x[i].innerHTML++;
}
}

function decrease() {
for (var i = 0; i < x.length; i++) {
if (x[i].innerHTML > 0) {
x[i].innerHTML--;
}
}
}

var session = x[1].innerHTML - 1;

function changeSessionDuration() {
if (seconds > 0) {
seconds--;
if (seconds == 0 && session > 0) {
session--;
seconds = 60;
}
}
x[1].innerHTML = session + ':' + seconds;
}

最佳答案

如果我正确理解您的问题,您的计时器不会在您之前添加的计时器运行之前的正确时间启动?

如果是的话,那是因为这一行:

var session = x[1].innerHTML - 1;

在增加/减少时间之前, session 值已设置。

您应该在增量/减量之后或开始运行之前设置 session 值,如下所示:

<div class='session' id='session' onclick='setSession(); setInterval(changeSessionDuration,100);'>2</div>

JS 是:

var x = document.getElementsByClassName('session');
var seconds = 60;

function increase() {
for (var i = 0; i < x.length; i++) {
x[i].innerHTML++;
}
}

function decrease() {
for (var i = 0; i < x.length; i++) {
if (x[i].innerHTML > 0) {
x[i].innerHTML--;
}
}
}

var session;
function setSession(){
session = x[1].innerHTML - 1;
}

function changeSessionDuration() {
if (seconds > 0) {
seconds--;
if (seconds == 0 && session > 0) {
session--;
seconds = 60;
}
}
x[1].innerHTML = session + ':' + seconds;
}

我的示例代码很脏,你应该适合你的口味。

关于javascript - 如何在 JavaScript 中设置计时器持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35509097/

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