JQuery перезапустить setInterval - PullRequest
1 голос
/ 21 января 2011

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

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

1 Ответ

2 голосов
/ 21 января 2011

Попробуйте:

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

    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...