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

Как навесить событие на элемент если он выводиться динамически?

Как навесить событие на элемент, который выводиться динамически не загрязняя код функции вывода. То есть как проверить вывела функция элементы или нет ?
К примеру функция и событие
getMessages();

$('#listClients button').click(function(){
        event.preventDefault();
        console.log('1');
    });
  • Вопрос задан
  • 175 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Если элемент #listClients у вас является родителем, в который вставляются новые элементы, то нужно делать так:

$('#listClients').on(
    'click',
    'button',
    function(){
        event.preventDefault();
        console.log('1');
    }
);


Это называется делегированием событий - вы вешаете обработчик на #listClients, который со страницы не исчезает и при каждом клике внутри себя он проверяет не был ли клик в действительности на button и если так - выполняет обработчик в нужном контексте.

Пример.
Ответ написан
Комментировать
@kirill-93
В современных версия jquery так, как сказал Алексей Уколов , в старых $('#listClients button').live('click', function(){})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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