• JavaScript

Почему инициализация с помощью JavaScript не срабатывает?

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

После добавления на страницы элемента через ajax:

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

Ответы: 5

Zerkysa
Zerkysa

Зачем вы это «повесили» на click?

Думал так, что «click» сразу отловит событие, что в поле появился указатель. А как сразу инициализировать элемент в DOM?
Александр Мальцев
Александр Мальцев

После строчки кода, посредством которой вы добавляете его в DOM, добавьте ещё строчку, с помощью которой вы его инициализируете, т.е.:

// здесь добавили в DOM...
$('.datepicker').datepicker(); // здесь выполнили инициализацию компонента
Zerkysa
Zerkysa

Спасибо, Александр!

Работает, только если нужно добавить десять элементов, то он добавить десять раз строку:
$('.datepicker').datepicker();
Это не критично?
Александр Мальцев
Александр Мальцев

Вместо .datepicker необходимо указать сам DOM-элемент или как-то по-другому в зависимости от того как вы его добавляете.

Александр Мальцев
Александр Мальцев
Доброго! После добавления элемента в DOM сразу же его и инициализируйте. Зачем вы это «повесили» на click?