2011-01-21 48 views
1

对不起,但无法重新启动带切换功能的setInterval。我去阻止它 - 在需要的时候,但我不能得到它的时候切换“关闭”JQuery重新启动setInterval

这里是我的代码

设置的setInterval

上拨动
var auto_refresh = setInterval(function() { $('.holder').load('board.php'); }, 5000); 

停止重启 - 但希望它开始在“反向切换”

$('.readmore').live('click',function() { 
    $(this).next().slideToggle('slow'); 
    clearInterval(auto_refresh); 
}, function() { 
    var auto_refresh = setInterval(function() { $('.holder').load('board.php'); }, 5000); 
}); 

帮助非常感谢,因为是概率。很简单只是我从来没有在把函数“功能中的”斋好

+0

我假设你的代码不工作,因为你将2个函数传递给`live()`函数,那么你的目的是什么? `live()`只绑定一个函数... – davin 2011-01-21 12:29:08

+0

@davin“你在那里有什么打算?” - 根据我的Q我想停止并基于开关 – 2011-01-21 12:31:05

回答

2

尝试:

$('.readmore').live('click',function() { 
    $(this).next().slideToggle('slow'); 

    if(!auto_refresh) { 
     auto_refresh = setInterval(function() { $('.holder').load('board.php'); }, 5000); 
    } 
    else { 
     clearInterval(auto_refresh); 
     auto_refresh = null; 
    } 
}); 

或者甚至可能更好,使用元素的状态来决定:

$('.readmore').live('click',function() { 
    var $elem = $(this).next(); 

    if($elem.is(':visible')) { 
     $elem.slideUp('slow'); 
     clearInterval(auto_refresh); 
    } 
    else { 
     $elem.slideDown('slow'); 
     auto_refresh = setInterval(function() { $('.holder').load('board.php'); }, 5000); 

    } 
}); 
相关问题