JQuery自动刷新(setInterval)

嗨伙计们不确定这样做的最好方法 – 即把if放在哪里..我有一个加载页面并具有setInterval()函数的div。

在加载的页面上有1个按钮,我想要实现的是当单击按钮#1(加载的页面)以停止setInterval()并追加一个新的div(绝对位置)直到按钮#2(在附加的div上)单击然后重新启动它。 .. comprende?

这是我的“基础”代码

这是第一个按钮的动作

  $('.replybutton').live('click',function(){ $('.discussion').append('
some content in here plus "button number2
'); });

这会加载页面 – 最初

 $('.discussion').load('board2.php'); 

这是刷新function

 var auto_refresh = setInterval( function() { $('.discussion').fadeOut().load('board2.php').fadeIn(); }, 10000); 

失败的任何事情 – (但不是首选)我可以在加载的页面上使用切换而不是在$('.replybutton').live('click',function()使用的追加$('.replybutton').live('click',function() ,但仍然需要停止刷新并重新启动它 – 基于切换,但我强调切换的想法不是首选方式。

我在JSFiddle为你创建了一个例子。 在这里查看: http : //jsfiddle.net/7YYV7/ 。

 var intervalId = 0; intervalId = setInterval(fadeDiscussion, 3000); $(function() { $('input[name=click]').bind('click', function() { clearInterval(intervalId); $('.discussion').append('
some content in here plus
'); }); $('input[name=save]').live('click', function() { intervalId = setInterval(fadeDiscussion, 3000); }); }); var i = 1; function fadeDiscussion () { console.log(i); $('.discussion').fadeOut().fadeIn(); i++; }

我认为你要找的是函数clearInterval() 。 这将允许您根据间隔ID(在您的情况下为auto_refresh )删除您的间隔。

以下是文档: https : //developer.mozilla.org/en/DOM/window.clearInterval

现在,您可以在命名函数中包装回调:

 var reload = function(){ $('.discussion').fadeOut().load('board2.php').fadeIn(); }; var auto_refresh = setInterval(reload, 10000); $('button').click(function(){ clearInterval(auto_refresh); });