javascript или jQuery не работают с динамически созданным контентом

Утренние люди. Как сделать мой javascript или jquery работать в динамически сгенерированном контенте.

В принципе, я создал веб-страницу, которая генерирует содержимое, основываясь на том, что пользователь нажимает на меню навигации.

Проблемы, с которыми я сталкиваюсь:

  1. когда основная страница сгенерирует содержимое с контентной страницы, jquery или javascript не будут работать.
  2. но когда я открываю только страницу содержания, все работает.

Информация, полученная путем поиска:

Метод jQuery.load () игнорирует тег скрипта, который поставляется вместе с тем контентом, созданным динамически.

Поэтому я стараюсь:

  1. Поместите тег, который мне нужен на главной странице, а не на странице содержимого. он не работает. похоже, что jquery не может найти элемент контента, потому что они динамически генерируются.
  2. Поскольку jQuery.load () игнорирует тег скрипта, я пробовал использовать чистый javascript ajax, например, как учит w3schools.com, путь xmlhttp, чтобы сгенерировать контент. Это не работает.
  3. При нажатии кнопки. нет ответа в консоли.

Пример contact.php

<script type="text/javascript"> $(function() { $("#submitUser").click(function(e) { var fname = $("#fname").val(); $("#theresult").text(fname); e.preventDefault(); }); }); <form id="contactForm"> <label for='fname' >First Name</label><br/> <input id="fname" type="text" name="fname" maxlength="100" /> </form> <div id="theresult"></div> 

Когда этот contact.php динамически генерируется на другую страницу, он не работает. Когда я нажимаю кнопку «отправить», консоль не показывает ответ. похоже, что jquery не существует.
Но когда я открываю его в браузере, он работает.

Для динамически генерируемых элементов вы должны делегировать события, вы можете использовать метод on :

 $(function() { $(document).on('click', '#submitUser', function(e) { var fname = $("#fname").val(); $("#theresult").text(fname); e.preventDefault(); }); }); 

Метод live() устарел .

Принимая дикий удар в темноте здесь, так как ваш вопрос не очень хорошо описан, но, возможно, вы пытаетесь использовать .click() и т. Д., Чтобы привязывать события к тем, которые динамически загружаются на страницу?

Если это так, вы, вероятно, захотите посмотреть на .on() .

Вам нужно использовать живое событие.

Например, если ваш сгенерированный контент содержит событие click, вы можете сделать это:

 $(".something").live("click", function({ // do something )}; 

Для динамически генерируемых полей используйте метод .on () JQuery:

 $(document).on('click', '#MyID', function(e) { e.preventDefault(); // or you can use "return false;" });