2

私は次のスクリプトを持っています-私はメニューを持っています、そしてユーザーが「約」をクリックするとメニューが消えてアニメーションのdivが表示されますそしてユーザーがどこかをクリックするとアニメーションのdivを消してメニューを再び表示します。アニメーションはx=setinterval(blabla)で再開され、xが0でない場合は、document.clickで停止することになっています。

問題は、「約」がクリックされた直後に1秒間表示され、停止することです。

jsfiddle- http: //jsfiddle.net/EgtqF/

ここ:

 $('#about').click(function(){
        $('#menu div').fadeToggle(1000);
        $('#credits').fadeToggle(1000);
        refreshId = setInterval(function(){
            $('#credits').animate({'bottom':'100%'},5000,'linear',
                function(){
                    $('#credits').css({'bottom':'0%'})})},
            1000);
    });

    $(document).click(function(){
            if(refreshId != 0){
                clearInterval(refreshId);
                $('#credits').fadeToggle(100);
                $('#menu div').fadeToggle(100);
                refreshId = 0;
            }
        });

これを機能させるにはどうすればよいですか?

4

1 に答える 1

3

クリックハンドラーevent.stopPropagation()からを発行して、イベントがオブジェクトにバブルアップされないようにします。#aboutclickdocument

$('#about').click(function(e){
   e.stopPropagation();
   // ...
   return false;
});
于 2012-09-10T10:54:05.647 に答える