Jquery: Почему этот оператор if-else будет следовать только за if или else, но не будет следовать за обоими, когда выполняются разные условия - PullRequest
2 голосов
/ 10 августа 2010

Вопрос: Почему оба If и Else оба работают, когда оба условия могут быть выполнены в разное время с помощью прокрутки ниже или выше. Является ли утверждение Else утверждением If?

Jquery:
$ (window) .scrollTop (function () {

    $('.grid_12').find(function () {
        var $header = $(this);

         if ($header.offset().top < $(window).Top()) {
             $(".fakeheading").css({position:"fixed"})
         } else {
            $(".fakeheading").css({position:"absolute"}) 
        } 
    });
});

дополнительная информация / мысли:
Почему не работает оператор «если», если у меня есть $(".fakeheading").css({position:"absolute"})
в «другом» утверждении. Либо If, либо Остальное работает, но они не будут работать вместе, как должны. Это похоже на то, что мой код не подчиняется оператору if, когда у меня есть код, содержащийся в операторе else. но если я испорчу код оператора else, (пусть будет

posssssition:"absolute"

тогда часть if-оператора моего скрипта работает нормально.

1 Ответ

3 голосов
/ 10 августа 2010

Если вы используете оператор IF и IF и ELSE, обрабатывается только первое «истинное» условие. Таким образом, если процесс выглядит как следующий псевдо-код:

 if (true) {do true stuff}
 else { do false stuff}

на самом деле будет обрабатываться только первый, второго не будет.

С другой стороны, если у вас есть:

 if (true) {do true stuff}
 if (other true stuff) {do other true stuff}

структура, они оба могут обработать, если условие истинно

РЕДАКТИРОВАТЬ: Еще одно примечание, если у вас есть:

if (true) {do true stuff} 
 else if (second true stuff) { do second true stuff} 
 else if (third true stuff) { do third true stuff}

будет выполняться только первый «истинный» процесс, какой бы ни был сверху вниз, равняется истинному первому.

...