dsmyk
@dsmyk
Студент

Как реализовать удаление элемента, по которому произошел клик?

Добрый день! Ситуация следующая:
По нажатию условной клавиши "А" в div добавляется параграф с какой-либо информацией. У этого параграфа также имеется крестик для удаления. Так как подобных параграфов может быть множество - каждому крестику при создании присваивается класс.
Есть функция:

deleteElement(event) {
    event.currentTarget.remove(); // он же this.remove()
}

Проблема заключается в том, что где бы и как я не пытался повесить данный обработчик на "крестик удаления" элемента - ничего не получается. При этом если такой обработчик повесить на элемент, который изначально присутствует на странице, то все срабатывает. А вот на созданные элементы уже после загрузки страницы ничего не срабатывает.

Пытался повесить обработчики на каждый элемент через цикл, но создается ощущение, что обработчик просто не видит этого элемента и никак не реагирует на какое-либо действия с ним.

Пытался прописать прям в HTML теге вызов выше описанной функции путем

<p onclick="deleteElement()">Крестик</p>

Но если функция написана не в самом HTML файле, то выдает ошибку, что функция не найдена. При прописании в файле HTML выдает ошибку, что .remove() не функция, что this неизвестно что, event.currentTarget тоже непонятно что.
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MadridianFox
Web-программист, многостаночник
Выглядит так как будто вы вешаете обработчик, а потом добавляете элементы на страницу. В таком случае необходимо вешать обработчик на элемент-кониейнер, который с самого начала есть на странице, а уже во время клика вычислять по какому именно элементу был сделан этот клик.
Ответ написан
Ваш ответ на вопрос

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

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