0

このコードを正しく動作させる方法がわかりません。行の予期しない識別子を受け取りました:

complete:function() {

このコード ブロックから:

$(document).ready(function(){

var doorOpen = false;

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

    if (doorOpen) { // set animation duration for door close, based on actually needed to animate the door closed or not
        var duration = 1500;
    } else {
        var duration = 0;
    }

    $("#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",
                }, 1500);
                $('#leftdoor').animate({
                 marginLeft: "-150px",
                }, 1500);
            }
    );

    doorOpen = true;

    return false;
});

});

私はJavascriptを初めて使用するので、ここで明らかな何かが欠けている可能性があります..

4

2 に答える 2

1

次の行を見てください。

$("#rightdoor,#leftdoor").animate({"marginLeft":"0px"}{duration:duration,complete:function() {

animate の最初の 2 つのパラメーターの間にカンマがありません。

そのはず:

$("#rightdoor,#leftdoor").animate({"marginLeft":"0px"},{duration:duration},complete:function() {

オブジェクトの最後のキーと値のペアの後にある余分なコンマを修正することをお勧めします。IE のエラーからあなたを救います。

animate 呼び出しを次のように変更する必要があります。

$("#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",
            }, 1500);
            $('#leftdoor').animate({
             marginLeft: "-150px",
            }, 1500);
        }
    }
);
于 2013-01-15T17:05:24.697 に答える
0

フォローラインはまだ間違っています

$("#rightdoor,#leftdoor").animate({"marginLeft":"0px"}      duration:duration,complete:function() {

パラメータに「duration」と「complete」という名前を付けることはできません。正しい行は

$("#rightdoor,#leftdoor").animate({"marginLeft":"0px"}, duration, function() {

変数 "duration" にも注意してください。if ブロックに入れました。変数は "animation" 行で未定義です。次のように "duration" の宣言を変更できます。

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

    var duration = 0;
    if (doorOpen) { // set animation duration for door close, based on actually needed to animate the door closed or not
        duration = 1500;
    }
于 2013-01-15T17:54:08.437 に答える