Jquery 删除动态输入字段后Datetimepicker未正确调用/绑定

Jquery 删除动态输入字段后Datetimepicker未正确调用/绑定,jquery,jquery-ui,jquery-plugins,datepicker,datetimepicker,Jquery,Jquery Ui,Jquery Plugins,Datepicker,Datetimepicker,我将jquery datetimepicker用于以下版本 JQuery v1.7.2 JQuery UI - v1.10.3 jQuery timepicker addon V1.3 在一个模块中,我通过单击“+”动态创建输入字段,并为那些动态创建的输入绑定日期时间选择器,以及通过单击“-”删除该输入字段 我的动态输入字段始终创建如下所示: datepickerfrom_1_1 datepickerfrom_1_2 datepickerfrom_1_3 datepickerfrom_1_4

我将jquery datetimepicker用于以下版本

JQuery v1.7.2
JQuery UI - v1.10.3
jQuery timepicker addon V1.3
在一个模块中,我通过单击“+”动态创建输入字段,并为那些动态创建的输入绑定日期时间选择器,以及通过单击“-”删除该输入字段

我的动态输入字段始终创建如下所示:

datepickerfrom_1_1
datepickerfrom_1_2
datepickerfrom_1_3
datepickerfrom_1_4
datepickerfrom_1_5
.
.
.
$(window).load(function() {
    $('body').on('focus', 'input[id^="datepickerfrom"]', function() { // Id's Containing "datepickerfrom" string, bind the datetimepicker
        $(this).datetimepicker({
            dateFormat: 'yy-mm-dd',
            timeFormat: 'HH:mm:ss'
        });
    });
}); 
我使用jQuery绑定datetimepicker,如下所示:

datepickerfrom_1_1
datepickerfrom_1_2
datepickerfrom_1_3
datepickerfrom_1_4
datepickerfrom_1_5
.
.
.
$(window).load(function() {
    $('body').on('focus', 'input[id^="datepickerfrom"]', function() { // Id's Containing "datepickerfrom" string, bind the datetimepicker
        $(this).datetimepicker({
            dateFormat: 'yy-mm-dd',
            timeFormat: 'HH:mm:ss'
        });
    });
}); 
创建动态输入时,
脚本(datetimepicker)
工作正常

问题: 我通过单击“+”添加了一些动态输入字段,然后通过单击“-”删除了一些输入,再次添加了一些动态输入字段。第二次创建的输入字段未正确调用/绑定datetimepicker


可能是什么问题?如何解决它?

我认为问题在于“on”函数中的jquery上下文。在函数jquery.on中,使用$(this)$(此)将引用您的主选择器:$('body')

您是否尝试过:

$('input[id^="datepickerfrom"]').on('focus', function() {

显示您需要一个输入字段。因此,我假设$('input[id^=“datepickerfrom”]”是您的输入字段。

我刚刚在JSFIDLE中尝试了它,它成功了,下面是链接:


如果您知道您的问题,请在JSFIDLE中复制它,以便我们可以看到它是什么,因为我看不到它。可能尝试使用
$(文档)。ready
而不是
$(窗口)。load
,这是我唯一更改的内容。或者问题实际上在于添加和删除函数,如果是这样的话,你应该将它们放在帖子中。

尝试使用
Live
方法代替
上的
。文件的顺序与JQuery v1.7.2、JQuery UI-v1.10.3、JQuery timepicker addon v1.3相同,我添加了CSS,但问题仍然相同。我没有添加Smooth.Js,因为如果我包含它,其他Js会显示错误。代码不起作用!它应该如何工作。。如您所见,如果下次id增加时删除一些文本框。。第一个文本框是datefrom_1_1如果我删除并添加ID是datefrom_1_3而不是datefrom_1_2,则第二个文本框是datefrom_1_2。我再次将id更改为datefrom_1_2,因此它不起作用。我对其进行了修改,使其能够按照您的要求工作,它仍能正常工作。谢谢,但当我使用时,我面临着同样的问题。这是因为JQuery版本吗?你说的“面对同样的问题”是什么意思?你是说JSFIDLE吗?jsfiddle对每个人都应该是一样的,这就是为什么我们使用它。无论我删除或添加了多少,当我点击输入时,datetimepicker仍然会打开。你也可以看到我在左边使用的Jquery版本,它和你的一样。我也在使用chrome,它也在工作,我不明白为什么它在你这边不起作用,我不想太多修改你的代码,但是如果它不起作用,你可以试试这个:我修改了绑定日期选择器的方式,在创建时绑定它们一次,而不是每次单击它们,这可能会更好。