1

以前の関数が終了した後に関数を起動しようとしています。.SideArea divが表示されます:.sideShowingのアニメーションの後、#pageは終了しましたが、代わりにdisplay:noneの部分は無視されます。

これが私のコードです。

$(function(){
    $("#SideMenuButton").click(function() {
        var SideArea = $(".SideArea");
        if (SideArea.css('display')!=='block') {
            SideArea.css('display','block');
            var move = 260;
            $(".sideShowing #page").stop().animate({left:"+="+move},{queue:false,duration:150});
            $("body, #viewport").css('min-height','600px').css('max-height','600px');
        } else {
            $(".sideShowing #page").stop().animate({left:"0"},{queue:false,duration:150}, function() {
                $(".SideArea").css('display','none')});

            $("body, #viewport").css('min-height','800px').css('max-height','');
        }
    });
});

それは

$(".sideShowing #page").stop().animate({left:"0"},{queue:false,duration:150}, function() {
                $(".SideArea").css('display','none')});

一部、表示:なしは無視されます。前のアニメーション関数が終了したときに関数を開始したいのですが、機能しません。

私は何が間違っているのですか?

4

1 に答える 1

1

この形式のanimate()。では、completeコールバックは3番目の引数としてではなく、2番目の引数(オプションマップ)のプロパティとして指定されます。

$(".sideShowing #page").stop().animate({left:"0"}, {
    queue: false,
    duration: 150,
    complete: function() {
        $SideArea.css('display','none');
    }
});
于 2012-12-16T06:21:37.917 に答える