@teertsneerg

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

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

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

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

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


То код перестаёт работать. Есть идеи почему так может происходить? (Перед созданием элементов выполняется ajax запрос, может ли быть это из-за него? Консоль никаких ошибок не выдаёт, просто 0 реакции на клики).
  • Вопрос задан
  • 393 просмотра
Решения вопроса 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");
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект
21 нояб. 2024, в 21:30
500 руб./за проект