gpt4 book ai didi

javascript - 如何停止函数再次执行,直到经过特定时间

转载 作者:行者123 更新时间:2023-12-01 16:25:21 25 4
gpt4 key购买 nike

我有一个函数,它会在您单击按钮时运行。但是我不希望函数在特定时间过去之前再次执行。例如,倒计时结束。如果再次单击该按钮,则该函数不应运行。

$("start").on('click', function() {
var myTimer;

function clock() {
myTimer = setInterval(myClock, 1000);
var c = 5;

function myClock() {
document.getElementById("demo").innerHTML = --c;
if (c == 0) {
clearInterval(myTimer);
alert("Reached zero");
}
}
}
});

最佳答案

首先删除clock()函数。鉴于您的代码结构,它没有任何用处。其次,如果您要使用 jQuery 等框架,请与其保持一致。

要解决实际问题,请存储一个 bool 标志以确定时间是否正在运行。

let $demo = $('#demo');

$("#start").on('click', function() {
let $button = $(this);
if ($button.data('running'))
return; // do nothing

$button.data('running', true);
let myTimer = setInterval(myClock, 1000);
let c = 5;
$demo.html(c);

function myClock() {
$("#demo").html(--c);
if (c == 0) {
$button.data('running', false);
clearInterval(myTimer);
console.log("Reached zero");
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="start">Start</button>
<div id="demo"></div>

关于javascript - 如何停止函数再次执行,直到经过特定时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62679526/

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