2013-09-22 4 views
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.

+0

Являются ли '.ship',' .star' или '# close_this_box' детьми' # body'? –

+0

Они все дети #body. Если вы хотите, чтобы я мог опубликовать HTML-код (ответ Патрика Эвана «исправил» проблему, хотя теперь у меня проблема с обновлением и прочностью, поэтому я бы хотел опубликовать больше lol) – Gmz1023

ответ

3

удалить var ключевое слово, прежде чем auto_refresh в $('#close_this_box').click( функции

$('#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 Edit: Actualy scratch, похоже, он работал, но, видимо, что-то застопорилось на сайте. – Gmz1023

+0

вы также можете переместить объявление переменной 'auto_refresh' в функцию' .ready', которая сохранит ее видимыми для функций событий, которые вы определили в ней, и сохраните глобальное пространство в чистоте. Однако он не будет виден функциям, которые вы объявляете вне функции '.ready' –

+0

, что вы имеете в виду что-то застопорившееся? –

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