2011-01-21 3 views
1

Извините, что у вас есть проблема, но проблема с перезапуском setInterval с помощью функции переключения. Я получаю, чтобы остановить его - когда это необходимо, но я не могу заставить его перезапускать, когда переключатель «закрывает»Перезагрузка JQuery setInterval

Вот мой код

Установите setInterval

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

Stop на тумблер - НО хочу его начать на «обратном переключении»

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

Помогите оценить, насколько это возможно. очень просто просто я никогда не Beed хорошо положить функции "в функции"

+0

I предположим, что ваш код не работает, потому что вы передаете 2 функции в функцию 'live()', каково ваше намерение? 'live()' только связывает 1 функцию ... – davin

+0

@ davin ", каково ваше намерение там?" - в соответствии с моим Q Я хочу остановить и запустить setInterval на основе переключателя –

ответ

2

Try:

$('.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); 

    } 
}); 
+0

ОК, но просто быстрый взгляд, что «правильный» путь вокруг? if (auto_refresh) ... тогда я хочу остановиться, если нет, тогда я хочу начать - попробует так или иначе - спасибо –

+0

Получил это, чтобы работать благодаря «переключению», который я использую, «обратный, т.е. закрытое топ-шоу не показано закрыть ", если это имеет какой-то смысл Большое спасибо –

Смежные вопросы