gpt4 book ai didi

javascript - 如何在特定时间禁用点击事件处理程序?

转载 作者:数据小太阳 更新时间:2023-10-29 05:55:19 25 4
gpt4 key购买 nike

只有 JavaScript,没有 jquery。

代码如下:

window.onload = addListeners;
function addListeners(){
for(var i = 0 ; i < document.getElementsByClassName('arrow').length; i++){
if(window.addEventListener){
document.getElementsByClassName('arrow') [i].addEventListener( 'click', func , false);

}else{
document.getElementById('arrow') [i].attachEvent('onclick' , func);
}
}
}


function func(){
//Takes exactly 5 seconds to execute
}

现在,我想在函数“func()”运行时禁用“点击”5 秒。然后,在完全执行“func()”之后,应该会再次自动启用点击。

如何只使用 JavaScript 来做到这一点?

最佳答案

与其禁用点击事件,不如检查变量以查看其当前是否正在运行。

var funcRunning = false;
function func(){
if (funcRunning) return;
funcRunning = true;

//Function logic here

funcRunning = false;
return //whatever
}

这样您就不会猜到该函数将花费 5 秒来运行,该函数在完成当前运行之前不会执行其逻辑。

编辑:作为@NULL有人建议,更好的方法是将 bool 变量存储在函数本身上以防止全局污染:

function func(){
if (func.IsRunning) return;
func.IsRunning = true;

//Function logic here

func.IsRunning = false;
return //whatever
}

关于javascript - 如何在特定时间禁用点击事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16896864/

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