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

时间:2017-05-03 04:26:07

标签: javascript jquery timer

我正在设置超时时间:

button.onClick(
 timer = setTimeout(func(){}, 1000);
);

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

按原样,多次点击该按钮只会使计时器在某个随机时间关闭。我之前尝试过调用clearTimeout(计时器),但它什么也没做。

我曾经多次遇到这个问题,我只是想在触发器事件上重置计时器,并且总是不得不最终找到一个解决方法。我无法想象没有办法让计时器恢复到最大。无需从头开始编写我自己的setTimeout版本,我们非常感激。

2 个答案:

答案 0 :(得分:1)

button.onClick(
    clearTimeout(timer);
    timer = setTimeout(func(){}, 1000);
);

请参阅https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout

答案 1 :(得分:0)

将计时器设置为全局变量,单击

清除上一个计时器
var timer;
button.onClick(
    clearTimeout(timer);
    timer = setTimeout(func(){}, 1000);
);