在动态内容上触发 jQuery 日期时间选择器

Trigger jQuery datetimepicker on dynamic content

我正在使用这个日期时间选择器:https://github.com/xdan/datetimepicker

我有一个表单,用户可以在其中动态添加更多字段。我一直没能找到让日期时间选择器显示在动态添加的字段上的方法。

这是一个 JS Bin:http://jsbin.com/coxafodace/1/edit?html,js,output

我试过使用 live() 和 onclick() 以及一大堆其他东西,但是日期时间选择器总是出现在最后一个非动态表单字段上,从不出现在新创建的表单字段上。

那么我该怎么做才能触发动态字段上的数据时间选择器?

这是因为您正在克隆最后一个重复的项目,所以它具有相同的事件,相同的一切。一个更好的方法是制作一个模板:

<script type="text/template" id="date-time-template">
    //repeated html goes in here
</script>

然后在您的 javascript 中附加一个新实例并在新 html 上初始化日期选择器。

var repeatingTemplate = $('#date-time-template').html();

jQuery('.repeat').click(function(e){  
    e.preventDefault();

    //Creates a NEW jquery object of the same html
    var $repeating = $(repeatingTemplate);
    var lastRepeatingGroup = jQuery('.repeating').last();

    //places the new line after the last one
    lastRepeatingGroup.after($repeating);

    //binds the datetime events to the newly added line
    $repeating.find('.starttime').datetimepicker({
        datepicker:false,
        // mask: true,
        format:'H:i',
        step: 15,
    });

    $repeating.find('.endtime').datetimepicker({
        datepicker:false,
        // mask: true,
        format:'H:i',
        step: 15,
    });
});

Here is an updated jsbin