0

次の JQuery コードを使用して、閉じた状態から始まる一対のドアを開きます。さまざまなメニュー項目により、ドアが閉じてから、下に対応する写真が表示された状態で再び開きます。ドアが最初に開かれたときを除いて、すべてがスムーズに機能し、右側のドア div が最初の場所にスナップして再びアニメーション化されます。ここで何が間違っていますか?#leftdoor と #rightdoor を見てください。これらは私が問題を抱えている div です。

    var doorOpen = false;

        $("a[href=#bugz]").click(function() {

            // If door is open then close doors
            if (doorOpen) { 
                var duration = 1000;
            } else {
                var duration = 0;
            }

            $('.title1,.title2,.title3,.title4,.title5,.fade1,.fade2,.fade3,.fade4,.fade5,').animate({
            opacity: 0,
            }, 1000);
            $('.fade5,.fade2,.fade3,.fade4').css('zIndex', 1);
            $('.fade1').css('zIndex', 20);

            $("#rightdoor,#leftdoor").animate(
                {"marginLeft":"0px"},
                {duration:duration,
                    complete:function() {
                        $('.pic2,.pic3,.pic4,.pic5').css('zIndex', 1);  //puts wrong pics in back
                        $('.pic1').css('zIndex', 2);  //brings right pic into view
                        $('#rightdoor').animate({  //opens doors again
                         marginLeft: "150px",
                        }, 1000);
                        $('#leftdoor').animate({
                         marginLeft: "-150px",
                        }, 1000);
                        $('.title1').animate({
                        "opacity": "0.75",
                        }, 1000);
                        $('.fade1').animate({
                        "opacity": "1",
                        }, 1000);
                    }
                }
            );

            doorOpen = true;


        });

これが再度実行されるたびに、正常に動作します。問題が発生するのは、ドアが閉じ始めたときだけです

4

1 に答える 1

0

試す

doorOpen = true;
return false;

//instead of 
doorOpen = true;

それがうまくいかない場合

試す

$("a[href=#bugz]").click(function(e) {
  e.stopPropagation()
于 2013-01-16T21:37:12.313 に答える