Я сталкивался с подобными вопросами раньше.Может быть несколько решений.
Здесь уже есть ответ на SO:
добавление-datepicker-on-динамически созданных элементов
На самом деле они предлагают:
$('body').on('focus',".datepicker_recurring_start", function(){
$(this).datepicker();
});
, и это обычно относится к динамически загружаемому контенту.Я думаю, что datepicker действительно проверяет, подключен ли обработчик, чтобы он не был подключен более одного раза.
Другой подход, который я иногда использую, - просто создать функцию для присоединения обработчика к элементу.или группу элементов, и вызовите это в обработчике успеха вашего вызова AJAX.Иногда это кажется более надежным, потому что делегирование другому элементу DOM вызывало у меня некоторые проблемы в некоторых случаях.Кроме того, вы можете настроить параметры выбора даты в обработчике успеха, если они отличаются от значений по умолчанию, которые вы используете при загрузке страницы.
Использование $ (document) иногда вызывало проблемы для меня, но если выделегировать вмещающий элемент уже в DOM, который обычно работает.
С подходом вызова из обработчика успеха вы можете просто вставить:
$('.dateedit').each(function(){ // or change your selector to $(e + '.datedit') where e is the selector for the enclosing div or whatever.
$(this).datetimepicker();
});
в обработчик успеха.
Я думаю, что вы даже можете использовать селектор типа '.dateedit: not (.hasdatepicker)' для прикрепления к элементам, у которых еще нет обработчика, но это может быть необязательно, потому что jQuery часто делает это за вас.