Не срабатывает условный оператор else в jquery

229
14 июля 2017, 04:50

Есть следующий нерабочий код

if ($('.block1').hasClass('plus')) {
    $('.block2').click(function () {
    $('.block1').addClass('lolo');
    });
} 
else ($('.block1').hasClass('lolo')) {
     $('.block2').click(function () {
    $('.block1').removeClass('lolo');
    })
}

При этом если удалить else, то код работает.

if ($('.block1').hasClass('plus')) {
    $('.block2').click(function () {
    $('.block1').addClass('lolo');
    });
} 

Где здесь ошибка?

Приклике на зелёный квадрат высота карсного должна менять с помощтью добавления класса, при втором клике класс должен удаляться. Интересует именно как можно выполнить это с помощью операторов в jquery без использования .toggleClasse

https://jsfiddle.net/MarkTok/tr0377a5/

Answer 1

Попробуйте так:

$('.block2').click(function () {
    var block1 = $('.block1');
    if (block1.hasClass('lolo')) {
        block1.removeClass('lolo');
    } else {
        block1.addClass('lolo');
    }
});

Этот код задаёт обработчик click один раз и уже внутри обработчика происходит анализ что делать в момент клика

READ ALSO
Неверный вывод времени js

Неверный вывод времени js

Я получаю данные из json-файлаОни имеют вид массива обьектов(это сообщения)

280
Определение элемента по-краям

Определение элемента по-краям

Есть родителе есть дочерние элементы, часть которых расположена в одном ряде, часть в другом

207