2017-08-10 73 views
1

在按钮点击我每3分钟的setTimeout执行多次

intervalId = setTimeout(function(){ searchSiteDetailViaAjax() }, 180000); 

和停止按钮,我开始停止该

clearTimeout(intervalId); 
intervalId = null; 

它工作正常,但再经过几年时间后调用Ajax的功能执行clearTimeout计时器会一次又一次地调用Ajax函数。

+0

这里没有足够的信息。你在'intervalId'中定义了什么范围?添加更多代码。 –

+0

你能发布更多信息吗?代码示例? –

+0

intervalId的范围是全局的。 –

回答

0

听起来像是你可能需要调用clearTimeout(intervalId);在点击之前,您setTimeout电话。

听起来好像发生了什么,你排队一个函数来执行,再次点击按钮,你排队另一个执行,并接收不同的句柄。单击停止按钮将不再能够清除导致多次执行的以前的手柄。

+0

感谢一声。它按预期工作。 –

+0

别忘了给我我的道具!哈哈。很高兴我能帮上忙 –