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>

自動更新を継続するか、#body div をまったくロードしません。

4

1 に答える 1

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_refreshauto_refresh

于 2013-09-22T01:54:19.417 に答える