我有一个jquery插件,每5分钟自动刷新一次页面。
(function($) {
$.fn.refreshPage = function() {
setInterval(function() {
function x();
}, 300);
};
})(jQuery);
但问题是我希望它在某个函数运行时重置计时器,我读过clearInterval,但我不知道如何在这里实现。更具体地说,我希望函数x在每次运行时都清除间隔。
跟进问题:
在给定插件的当前结构的情况下,如何在另一个文件的函数上调用clearInterval?抱歉,诺布在这里。谢谢!
任何帮助将不胜感激。提前谢谢!
更新
我的插件现在看起来像这样
(function($) {
var refresh_timer;
$.fn.refreshPage = function() {
refresh_timer = setInterval(function() {
function x();
}, 300);
};
$.fn.reFreshPage.resetTimer = function() {
clearInterval(refresh_timer);
})(jQuery);
我打电话给:
$.fn.reFreshPage.resetTimer
重置间隔,但问题是它会中断setInterval,并且在重置定时器后不再刷新页面。我在这里错过了什么吗?
答案 0 :(得分:3)
您只需记住原始调用setInterval的返回值,然后可以将其传递给clearInterval以停止计时器。
var timer = setInterval(...);
clearInterval(timer);
有时,当您想要更多控制时,更容易不使用setInterval()
,而是使用setTimeout()
并在每个连续计时器上重复调用setTimeout()
,直到您希望它停止为止。如果需要,这种技术还可以更容易地改变定时器间隔。