Остановить автообновление

0

Хорошо, новая проблема с кодом, над которым я работал; Я не могу получить автоматическое обновление, чтобы остановить, когда элемент щелкнут открытым, а затем перезагрузите его после закрытия элемента.

<script type='text/javascript'>
var auto_refresh = setInterval( function() { $('#body').load('body.php').fadeIn('slow'); }, 1000);
$(document).ready(function(){
            $('.star, .ship').click(function(){
                    var name = $(this).attr('name');
                    var type = $(this).attr('type');
                    var linkvar = 'content.php?lid=';
                    var link_full = linkvar + name;
                    $('#box').removeClass('hidden');
                    $('#box_content').addClass(type);
                    if(auto_refresh)
                    {
                        clearInterval(auto_refresh);    
                    }
                    $('#box_content').load(link_full);
                });
$('#close_this_box').click(function(){
    $('#box').addClass('hidden'); $('#box_content').empty();
    var auto_refresh = setInterval( function() { $('#body').load('body.php').fadeIn('slow'); }, 1000);
    });
$('.ship, .star').hover(
    function()
    { 
        $(this).children('div').removeClass('hidden');
    }, 
    function(){ $(this).children('div:nth-child(2)').addClass('hidden');});
});
</script>

Он либо продолжает автоматическое обновление, либо просто не загружает div #body.

Теги:

1 ответ

3
Лучший ответ

удалите ключевое слово var перед auto_refresh в $('#close_this_box').click( function

$('#close_this_box').click(function(){
    $('#box').addClass('hidden'); $('#box_content').empty();
    auto_refresh = setInterval( function() { $('#body').load('body.php').fadeIn('slow'); }, 1000);
});

используя var вместо локальной переменной auto_refresh создается локальная переменная с именем auto_refresh.

  • 0
    это сделал И теперь я чувствую себя идиотом. спасибо: D Редактировать: Фактически, поцарапайте это, похоже, это работает, но, очевидно, что-то застопорилось на сайте.
  • 0
    Вы также можете переместить объявление переменной auto_refresh в функцию .ready , которая сделает его видимым для функций событий, которые вы в нем определили, и сохранит чистоту глобального пространства. Однако он не будет виден функциям, которые вы объявляете вне функции .ready
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню