将 setTimeout() 重置回最大时间而不执行?

ver*_*he_ 1 javascript jquery timer

我正在设置超时例如:

button.onClick(
 timer = setTimeout(func(){}, 1000);
);
Run Code Online (Sandbox Code Playgroud)

当再次单击按钮时,我想将计时器设置回 1000,而不运行 func()。

事实上,多次点击按钮只会让计时器在某个随机时间响起。我之前尝试过调用clearTimeout(timer),但它什么也没做。

我之前曾多次遇到过这个问题,我只想在触发事件上重置计时器,并且总是不得不找到解决方法。我无法想象没有办法将计时器恢复到最大值。非常感谢任何不从头开始编写我自己的 setTimeout 版本的见解。

mad*_*scu 5

将计时器设置为全局变量,单击时清除先前的计时器

var timer;
button.onClick(
    clearTimeout(timer);
    timer = setTimeout(func(){}, 1000);
);
Run Code Online (Sandbox Code Playgroud)