@teertsneerg

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

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

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

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

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


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

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

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