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

Zerkysa
660
0
Доброго времени суток!

После добавления на страницы элемента (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>

Комментарии ()

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

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