JQuery перезапустить setInterval

Извините, что надоедаю, но возникли проблемы с перезапуском 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 );
});

Помощь высоко ценится, как и проблема. очень просто, просто я никогда не умел помещать функции "внутри функций"


person Russell Parrott    schedule 21.01.2011    source источник
comment
я предполагаю, что ваш код не работает, потому что вы передаете 2 функции в функцию live(), каковы ваши намерения? live() связывает только 1 функцию...   -  person davin    schedule 21.01.2011
comment
@davin, каковы твои намерения? - согласно моему вопросу, я хочу остановить и запустить setInterval на основе переключателя   -  person Russell Parrott    schedule 21.01.2011


Ответы (1)


Пытаться:

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

    }
});
person jAndy    schedule 21.01.2011
comment
Хорошо, но только быстрый взгляд, это правильный путь? if(auto_refresh) ... тогда я хочу остановиться, если нет, то я хочу начать - все равно попробую - спасибо - person Russell Parrott; 21.01.2011
comment
Получил работу, спасибо, что переключатель, который я использую, перевернут, т. Е. Закрытое верхнее шоу не показывается, чтобы закрыть, если это имеет смысл. Большое спасибо. - person Russell Parrott; 21.01.2011