2011-01-20 57 views
1

嗨伙计不知道这样做的最佳方式 - 即在哪里把if的..我有一个div加载一个页面,并有一个setInterval()函数。点击按钮#1(加载页面)停止setInterval()并追加一个新的div(绝对位置),直到按钮#2(开启单击apended div)然后重新启动它。 .. comprende?JQuery自动刷新(setInterval)

这里是我的“基地”代码

这是第一个按钮的动作

$('.replybutton').live('click',function(){ 
    $('.discussion').append('<div class="replyarea">some content in here plus "button number2</div>'); 
    }); 

这将加载的页面 - 最初

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

这是刷新功能

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

    }, 10000); 

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

回答

1

我在的jsfiddle为您创建一个例子。看看这里:http://jsfiddle.net/7YYV7/

代码

var intervalId = 0; 
intervalId = setInterval(fadeDiscussion, 3000); 

$(function() { 
    $('input[name=click]').bind('click', function() { 
     clearInterval(intervalId);  

     $('.discussion').append('<div class="replyarea">some content in here plus <input type="button" name="save" value="save"></div>');  
    }); 

    $('input[name=save]').live('click', function() { 
     intervalId = setInterval(fadeDiscussion, 3000); 
    }); 
}); 

var i = 1; 
function fadeDiscussion() { 
    console.log(i); 
    $('.discussion').fadeOut().fadeIn(); 
    i++; 
} 
1

我认为你要找的是功能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); 
});