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); });