【发布时间】:2011-11-09 22:46:16
【问题描述】:
我有一个 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 并且在计时器重置后不再刷新页面。我在这里遗漏了什么吗?
【问题讨论】:
-
clearInterval 不会重置间隔计时器 - 它会完全停止它。如果要“重新启动”它,则必须清除当前间隔,然后开始新的间隔。另外,我不知道你在用“reFreshPage”做什么,但如果你真的在刷新页面(例如加载新页面),那么你当前的所有 javascript 都会停止并被新页面重新初始化。跨度>
标签: jquery ruby-on-rails refresh setinterval clearinterval