Javascript jQuery datetimepicker第一次不工作

Javascript jQuery datetimepicker第一次不工作,javascript,jquery,jquery-ui,datetimepicker,Javascript,Jquery,Jquery Ui,Datetimepicker,我使用了一个动态时间域 对于动态初始化,我使用以下代码: $("body").on("focus",".time-input",function(){ $(this).datetimepicker(); }); 但当我第二次集中注意力时,它就起作用了 如果可能的话,一个工作演示会很棒。在文档准备就绪的DOM元素上初始化datatimepicker $(function () { $("body").on("focus",".time-input",function(

我使用了一个动态时间域

对于动态初始化,我使用以下代码:

 $("body").on("focus",".time-input",function(){
        $(this).datetimepicker();
 });
但当我第二次集中注意力时,它就起作用了


如果可能的话,一个工作演示会很棒。

在文档准备就绪的DOM元素上初始化datatimepicker

$(function () {
    $("body").on("focus",".time-input",function(){
       $(this).datetimepicker();
    });
}

这将解决您的问题。

问题在于,您仅在元素第一次聚焦时,然后每次聚焦之后,才在元素上实例化日期选择器,这不是一个好主意。相反,您只需要在加载的元素上实例化它:

$(function() {
    $('.time-input').datetimepicker();
});
如果.time输入元素像我假设的那样被动态地附加到DOM中,那么您需要在它被添加到DOM时调用它的datepicker方法。例如:

$.ajax({
    url: 'mypage.php',
    success: function(data) {
        if (data.prop) {
            var $input = $('<input class="time-input" />').appendTo('#myForm');
            $input.datepicker();
        }
    }
});

请尝试$document.body,而不是$body

$(document.body).on('focus', '.time-input', function(){
    $(this).datetimepicker();
});

这是因为focusin事件被插件用来显示datepicker,更好的解决方案是在创建输入元素后立即初始化插件,但是如果你不能这样做,你可以考虑一些解决方法,比如

$body.onfocus、.time输入、函数{ 如果!$this.data'xdsoft\u datetimepicker'{ $this.datetimepicker{ onGenerate:函数{ 如果!$this.hasClass'initial'{ $this.addClass'initial'.triggerHandler'open.xdsoft'; } } }; } }; $“按钮”。单击功能{ $'ct'。追加; };
Add我认为您需要在创建dom后设置datepicker。这里的代码不起作用,因为jquery datetimepicker在初始化时没有打开选项卡。第二次你关注它的工作,因为它已经初始化了

像这样:

//here your dom should be updated you can console the length 
//console.log($('.time-input').length)
$('.time-input').each(function(){
  $(this).datetimepicker();
});

这与OP现在所做的完全相同?谢谢你的回答,但需要的是使用此类动态创建新元素。我尝试过这一点,但这只适用于静态元素,而不适用于动态元素您看到了我关于动态添加元素的更新,对吗?这也是不可能的我无法访问动态创建的元素它的内置元素如果你是动态创建元素只有在DOM中创建元素之后才初始化datetimepicker。尝试将$body更改为$Document谢谢你的回答,但我不知道放在哪里..因为我不知道它的createdyou可以从哪里检查何时开始事件在单击或聚焦等之后触发