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

Как повесить обработчик на динамический элемент?

Пользователь заходит на платформу с онлайн уроком, в определенный момент у него появляется кнопка.

В эту кнопку нужно подтянуть значение location.search, с этим я справился. Но при заходе на страницу у пользователя нет этого элемента с кнопкой. Он появится в неизвестное время.

Я читал, что можно как-то делегировать обработчик на родителя, но не нашел как это сделать.

DOM до появления кнопки:
616309fd9953d623109299.png

DOM после появления кнопки:
616309e961859920014169.png

В виде кода:
<div id="files" class="files panelitem mainbg" style="display:none;"></div>


Подскажите, как повесить обработчик на элемент, который неизвестно когда появится. Чтобы когда он появился, определенная функция поменяла в кнопке href
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Aetae
@Aetae Куратор тега JavaScript
Тлен
Причём тут обработчик события, если тебе надо поменять href сразу, а не при каком-то событии?

Правильный ответ: найти функцию, которая эту кнопку добавляет и добавить в неё изменение href.
Плохой ответ: MutationObserver.
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Вы должны тупо провесить обработчик на body.
Ответ написан
@writer_2159
Жуть... просто жуть...
Делегирование событий.
событие весишь на родителя и проверяешь что клик был по нужному элементу

https://learn.javascript.ru/event-delegation
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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