2011-01-21 90 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); 

    } 
}); 
相關問題