Код JQuery не будет работать в моем добавленном HTML - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть это добавленное текстовое поле, когда я нажимаю кнопку, но код .datepicker в jquery не работает, но в обычном текстовом поле он работает.

Как мой .datepicker может работать в моем Jquery?Это образец jsfiddle.http://jsfiddle.net/fqjvLxn1/14/

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( ".datepicker" ).datepicker();

    $("#btn1").click(function(){
        $("p").append("<input type='text' class='asd datepicker'>");
    });
  } );


  </script>
</head>
<body>


<button id="btn1">Append text</button>
<p>(.datepicker wont work here when I clicked a Button) </p>
<input type='text' class='asd2 datepicker'>(But works here)

</body>
</html>

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Прежде всего, переместите свой код jQuery в конце body.jQuery не знает о новых / добавленных элементах после начальной загрузки страницы, поэтому вам придется использовать document для поиска этих элементов.Проверьте этот фрагмент

<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>

<body>

  <button id="btn1">Append text</button>
  <p>(.datepicker wont work here when I clicked a Button) </p>
  <input type='text' class='asd2 datepicker'>(But works here)

  <script>
    $(function() {
      $(".datepicker").datepicker();
      $("#btn1").click(function() {
        $("p").append("<input type='text' class='asd datepicker' id='show'>");
      });
      $(document).on("focus", ".asd", function() {
        $(this).datepicker();
      });
    });
  </script>


</body>

</html>
0 голосов
/ 18 сентября 2018

Вы должны снова вызвать функцию datepicker. Потому что вы звоните один раз в документ готов. Этот фрагмент выполняется сразу после загрузки страницы. Таким образом, ваши динамические датеры еще не там. Вам нужно вызвать $ (YourElementSelector) .datepicker () для каждого вновь вставленного элемента

  $( function() {
    $( ".datepicker" ).datepicker();

    $("#btn1").click(function(){
        $("p").append("<input type='text' class='asd datepicker'>");
        $( ".datepicker" ).datepicker();
    });
  } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...