Jquery函数不能处理动态加载的内容(不是绑定函数)

时间:2016-04-29 06:32:52

标签: javascript jquery datetimepicker eventhandler

我在javascript中有一个问题,我有一个具有添加和删除按钮的表单,在点击它们时,一些表单字段会被重复并按照按钮点击删除, 在那些字段中我也有datetimepicker,我希望它也应该在生成的字段中工作,但它不起作用,虽然我使用了类而不是Id给它们像

这样的函数
    $(function () {
    var now = new Date();
    $('.time_in').datetimepicker({
        defaultDate: now,
        format: 'HH:mm'
    });
});

但是它只在第一个字段而不是所有字段中工作,我在更改datetimepicker的值后附加了一些事件处理程序,但是我没有遇到问题,我知道该怎么做它

我只是想问一下如何用datetimepicker给函数或初始化字段..

以下是截图

Scenario

2 个答案:

答案 0 :(得分:0)

您好,因为您要动态创建文本框,所以应该使用事件委派,使用jQuery的on()方法(需要jQuery版本1.7x +)。

添加

 $('body').on('focus',".time_in'", function(){
        $(this).datepicker();
    });

这是一个小型演示http://jsfiddle.net/SJ7bJ/1013/

答案 1 :(得分:0)

在添加新元素后,您需要调用代码在每个字段上添加datetimepicker。考虑重构代码以将dateptimepicker分配到一个单独的函数中,该函数可以从init和#add函数调用。

$(function () {
    add_time_in_datetimepicker();
});

function add_time_in_datetimepicker() {
    var now = new Date();
    $('.time_in').datetimepicker({
        defaultDate: now,
        format: 'HH:mm'
    });
});

然后在#add函数结束时,进行相同的调用。您需要为要动态添加的所有datetimepicker类执行此操作。