Почему не срабатывает toggleClass?

Здравствуйте.

Изучаю jQuery и столкнулся с непонятным мне поведением.
Объясните пожалуйста, почему данный код не работает если перед toggleClass удалять класс "active"
jsfiddle.net/fN63P/1

Поставил себе задачку сделать выпадающие блоки по клику. Если таких блоков несколько то нужно сначала удалять active, но это не получается.
  • Вопрос задан
  • 8501 просмотр
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Комментарий к вопросу:
Поясните, что хотите. Если блоков, например, 3, то как они должны вести себя при клике на ссылку - сначала появился первый, потом он скрылся и появился второй, он скрылся и появился третий. Так? Когда открыт третий и еще раз кликаем - должен третий скрыться и открыться первый?

Вот пример первой части. Но лучше поясните, что хотите сделать.
codepen.io/iiil/pen/wmdKE
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@andreyqin
removeClass уберите. Зачем вы его пишите? Вы при каждом клике удаляете класс active, а toggleClass добавляет этот класс, в итоге функция всегда показывает блок. Надо просто оставить toggleClass, который будет переключать класс:
jsfiddle.net/fN63P/2
Ответ написан
$('a').on('click',function(e){
    e.preventDefault();
    $(this).next('div').toggleClass('active');
});
Такой код прекрасно работает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы