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

Zerkysa
Zerkysa
916
6
Содержание:
  1. Комментарии
Доброго времени суток!

После добавления на страницы элемента (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
    2018-11-01 06:25:22
    +
  1. Zerkysa
    Zerkysa
    2018-11-01 06:02:48
    Зачем вы это «повесили» на click?
    я думал так, что «Click» сразу отловит событие, что в поле появился указатель

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