В чем разница между if () {} и if () в JavaScript - PullRequest
0 голосов
/ 12 августа 2011

Я написал этот код, который является базовой галереей изображений в 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 ]

1 голос
/ 12 августа 2011

нужно несколько строк {}, иначе интерпретатор 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');
        });
    }
}

P.S. пожалуйста, используйте также точки с запятой (;) для различения строк.

0 голосов
/ 12 августа 2011

Если в операторе if есть только один оператор, который должен быть выполнен условно, вы можете оставить фигурные скобки. Если больше операторов должно быть выполнено условно, вы должны принять их как блок кода в фигурных скобках. Мой совет: всегда пишите пару скобок, особенно. если вы начинаете программировать!

...