Показать сообщение отдельно
  #5 (permalink)  
Старый 05.07.2015, 18:08
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

Сообщение от рони Посмотреть сообщение
pistachio,
может так изначально нужно было
jQuery(function(f) {
    f(window).scroll(function() {
        f('#hide-navbar-header')[(f(this).scrollTop() > 180 ? "add" : "remove") + "Class"]("hide-navbar-header_fixed")
            .[(f(this).scrollTop() > 180 ? "remove" : "add") + "Class"]("hide-navbar-header_hide");
    });
});
Как работает этот сатанинский код? Минут пять втыкаю, не могу понять
f это псевдоним jQuery, понятно. Вот эта строка что делает?:
f('#hide-navbar-header')[(f(this).scrollTop() > 180 ? "add" : "remove") + "Class"]("hide-navbar-header_fixed")

Тернарный оператор преобразуется в "add" или "remove", получаем примерно это:
f('#hide-navbar-header')["addClass"]("hide-navbar-header_fixed")

Это такое вырвиглазное обращение к методу коллекции jQuery? Кто-нибудь пояснит мне, зачем так делать?
Ответить с цитированием