Javascript:如何立即禁用按钮

Javascript: How to disable a button instantly?

本文关键字:按钮 何立即 Javascript      更新时间:2023-09-26

攻击=攻击按钮。

当我运行此代码(单击按钮)时,禁用按钮大约需要 1 秒。如何将其设置为立即禁用?我假设这是因为 1000 毫秒的计时器,但我不确定。

var disabledStartTimer = setInterval(disabledTimer, 1000);
var start = 0;
function disabledTimer() { 
    if (start > 5){
        clearInterval(disabledStartTimer);
        console.log("disabled timer stopped");
        blitz.disabled = false;
    }
    else {
        blitz.disabled = true;
        start++;
    };
}

是的,这是因为 1000ms 计时器。 如果将其设置为 10,则需要 10 毫秒才能禁用。 如果需要它启动禁用,请将blitz.disabled = true代码移出间隔回调:

var disabledStartTimer = setInterval(disabledTimer, 1000);
var start = 1;  // set to 1 to maintain consistency (i.e. call blitz.disabled = true the same amount of times as the original code.
blitz.disabled = true;
function disabledTimer() { 
    if (start > 5) {
        clearInterval(disabledStartTimer);
        console.log("disabled timer stopped");
        blitz.disabled = false;
    }
    else {
        blitz.disabled = true;
        start++;
    }
}

如果你需要做更复杂的事情,而这段代码只是一个示例,你可以将你的复杂语句包装在一个函数中,并从区间外部和内部调用它:

var disabledStartTimer = setInterval(disabledTimer, 1000);
var start = 1; // set to 1 to maintain consistency (i.e. call blitz.disabled = true the same amount of times as the original code.
function disableBlitz() {
    blitz.disabled = true;
}
disableBlitz();
function disabledTimer() { 
    if (start > 5) {
        clearInterval(disabledStartTimer);
        console.log("disabled timer stopped");
        blitz.disabled = false;
    }
    else {
        disableBlitz();
        start++;
    }
}

计时器设置为 0

var disabledStartTimer = setInterval(disabledTimer, 0);

或干脆打电话

disabledTimer();

设置这个:

var disabledStartTimer = setInterval(disabledTimer, 1000); // 1 sec

对此:

var disabledStartTimer = setInterval(disabledTimer, 0); // 0 sec

因为时间在这里以毫秒为单位。你可以肯定这一点,这真的是因为setInterval.