Задать вопрос
@teertsneerg

Почему не работает .click()?

Всем привет! Возникла такая проблема:

Использую такой код:
$(".answer-item").click(function() {
  $(this).toggleClass("active");
});

И всё работает прекрасно с элементами, которые изначально прописаны в html файле.

Если создать список элементов таким образом:
answers.forEach(function(item) {
  $('#answers').append('<p class="answer-item">'+item+'</p>');
});


То код перестаёт работать. Есть идеи почему так может происходить? (Перед созданием элементов выполняется ajax запрос, может ли быть это из-за него? Консоль никаких ошибок не выдаёт, просто 0 реакции на клики).
  • Вопрос задан
  • 395 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 2
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
А вы то сами как думаете, почему? Вы ставите обработчик на элементы, потом добавляете новые элементы, а обработчика на них нет, никто же его не ставил, верно? Нужно использовать делегирование:

$(document).on('click', '.answer-item', function() {
  $(this).toggleClass("active");
});
Ответ написан
Комментировать
UnluckySerivelha
@UnluckySerivelha
$('body').on('click', '.answer-item', function() {
  $(this).toggleClass("active");
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы