-1

jqueryの基本的な画像ギャラリーであるこのコードを書きました

$(document).ready(function() {
 setInterval("rotateImages()",2000)
 })

function rotateImages() {
     var curPhoto = $("#photoshow div.current");
     var nextPhoto = curPhoto.next();
     if (nextPhoto.length == 0) {
         nextPhoto = $("#photoshow div:first");
     }
     curPhoto.removeClass("current").addClass("previous");
     nextPhoto.css({
         opacity: 0.0
     }).addClass("current").animate({
         opacity: 1.0
     }, 1000‌​, function () {
         curPhoto.removeClass("previous")
     });
}

これは機能しますが、if ステートメントを {} でラップする場合は機能しません。2つの違いと、なぜうまくいかないのかを理解したかっただけです。

4

2 に答える 2

1

複数の行には {} が必要です。そうしないと、JavaScript インタープリターは実行するものが他にあることを認識できません。

これを試してください、それはうまくいく必要があります:

$(document).ready(function() {
    setInterval("rotateImages()", 2000);
})

function rotateImages() {
    var curPhoto = $("#photoshow div.current")
    var nxtPhoto = curPhoto.next();

    if (nxtPhoto.length == 0) {
        nxtPhoto = $("#photoshow div:first");
        curPhoto.removeClass('current').addClass('previous');
        nxtPhoto.css({
            opacity: 0.0
        }).addClass('current').animate({
            opacity: 1.0
        }, 1000, function() {
            curPhoto.removeClass('previous');
        });
    }
}

PS 行を区別するためにセミコロン (;) も使用してください。

于 2011-08-12T16:14:58.253 に答える
0

if ステートメントに条件付きで実行する必要があるステートメントが 1 つしかない場合は、中かっこを省略できます。さらにステートメントを条件付きで実行する必要がある場合は、それらを中かっこ内のコードのブロックとして受け入れる必要があります。私のヒント: 常に中かっこのペアを書きます。プログラミングを始めるなら!

于 2011-08-12T16:10:53.517 に答える