Почему инициализация элемента осуществляется только на второй клик?

Zerkysa
Zerkysa
951
6
Доброго времени суток! После добавления на страницы элемента (ajax)

<div id="response">
<input type="text"  class="form-control datepicker" name="" placeholder="" value="">;
</div>
кликаем по элементу (input) , ни какой реакции. кликаем второй раз и появляется календарь. использую такой js

    <script>
        $('#response').on('click', 'input', function(e){
            $('.datepicker').datepicker({});
        });
    </script>

Комментарии: 6

  1. Zerkysa
    Zerkysa
    01.11.2018, 06:25
    +
  2. Zerkysa
    Zerkysa
    01.11.2018, 06:02
    Зачем вы это «повесили» на click?
    я думал так, что «Click» сразу отловит событие, что в поле появился указатель

    А как сразу инициализировать элемент в DOM?
    1. Александр Мальцев
      Александр Мальцев
      01.11.2018, 06:16
      После строчки кода, посредством которой вы добавляете его в DOM, добавьте ещё строчку, с помощью которой вы его инициализируете, т.е.:
      // здесь добавили в DOM...
      $('.datepicker').datepicker(); // здесь выполнили инициализацию компонента
      
    2. Zerkysa
      Zerkysa
      01.11.2018, 06:27
      Спасибо Александр! Работает, только если я добавлю десять элементов, то он добавить десять раз строку
      $('.datepicker').datepicker();
      это не критично?
    3. Александр Мальцев
      Александр Мальцев
      01.11.2018, 06:41
      Вместо '.datepicker' можно указать сам DOM-элемент или как-то по-другому в зависимости от того как вы его добавляете.
  3. Александр Мальцев
    Александр Мальцев
    31.10.2018, 17:15
    Доброго! После добавления элемента в DOM сразу же его и инициализируйте. Зачем вы это «повесили» на click?