@qwertybnm

Как биндить функцию элементу при обновлении DOM?

Присваиваю форме функцию, которая при сабмите подсчитывает количество элементов в определенном div`е:
RequestForm.bind('submit',
			function()
			{
				$(document).find(ServicesItem).each(
					function()
					{
						alert();
					}
				);
			}
		);

Эти элементы в него добавляется опять же при помощи jQuery. И получается, что при загрузке страницы в div`е нет ни одного нужного элемента, но когда мы его добавляем, эта функция уже не учитывает их. Если же прописать в html файле нужный элемент, то все работает.
Как можно это правильно исправить?
У меня есть вариант, что при каждом добавлении элемента при помощиjQuery заново биндить эту функцию, но я не уверен, что так будет правильно
  • Вопрос задан
  • 273 просмотра
Решения вопроса 2
carlcox
@carlcox
Fullstack developer
$(document).on('submit', RequestForm,
      function()
      {
        $(document).find(ServicesItem).each(
          function()
          {
            alert();
          }
        );
      }
    );
Ответ написан
evgeniy8705
@evgeniy8705
Повелитель вселенной
Demo

<form>
  <button type="submit">Go</button>
  <button class="add">Добавить</button>
</form>

<ul class="list"></ul>


let index = 0;
let list = $(".list");

$("form").bind("submit", event => { // bind!!!
  event.preventDefault();

  list.find("li").each(item => {
    alert(item);
  });
});

$(".add").on("click", event => {
	event.preventDefault();

	const li = document.createElement("li");
  li.textContent = index++;
  
  list.append(li);
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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