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

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

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

$('#listClients button').click(function(){
        event.preventDefault();
        console.log('1');
    });
  • Вопрос задан
  • 176 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 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(){})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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