Carduelis
@Carduelis
Web-developer, front-end, js, less

Как добавить обработчик к кнопкам, когда они добавляются в следствии, например, ajax-запросов?

Disclaimer. Пытаюсь написать систему, позволяющую создавать формы (почти как google.forms). Цели - модуль интранет-системы, готовые варианты не подошли, гуглоформы также отпадают.

Написал некоторую базу, которая работает по следующей схеме:
Действие (добавить/удалить/изменить поле) -> Обновляем localstorage -> Рендерим в html с помощью lodash, и отправляем json на сервер.
Суть в том, что когда мы добавляем новый html в DOM-дерево, там есть и кнопки. Как красиво и элегантно на них вешать обработчики?
Как сделать так, чтобы обработчики не стакались?

Сейчас работает так: с помощью jQuery при каждом рендере все кнопки подвергаются .off('click'), а затем сразу же .on('click', sendToJsonFunction);
Хотелось бы отказаться от jQuery и использовать addEventListener, но с removeEventListener, как я читал, есть проблемы: нужно по особому снимать уже навешенный ранее обработчик.
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
DIITHiTech
@DIITHiTech
Fullstack javascript developer
Эх опять... делегирование событий почитайте https://learn.javascript.ru/event-delegation
простой пример https://jsfiddle.net/DigitalBrain/bufchjtq/1/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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