JQuery:委托和datepicker

我需要给定类中的每个文本输入都是一个日期选择器。 就像是:

$("input[type=text].time").datepicker(); 

但是我通过Jquery.load()添加了很多代码,所以我相信我需要一个委托。 问题是我不知道该怎么做,因为据我所知,load事件不能在委托中使用。 如果它存在将很容易:

 $(document).delegate("input[type=text].time", "load", function(){ $(this).datepicker(); }); 

 $("body").delegate("input[type=text].time", "focusin", function(){ $(this).datepicker(); }); 

我在身体上使用了委托,因为我不知道你的代码是否在你可以定位的其他容器中。

这是一个以委托为目标的特定div的小提琴:

http://jsfiddle.net/MpqAy/

我知道这个问题比较陈旧,但我只想分享我的解决方案,因为它在2018年仍然有用。

  $('#container').off().on('focusin', '.date', function () => { $(this).datepicker(); }); 

如果您正在使用带有TypeScript的jQuery

  $('#container').off().on('focusin', '.date', (e) => { $(e.currentTarget).datepicker(); }); 

你会注意到off()函数。 这将从有问题的Jquery对象中清除事件。 所以你不会得到任何冒泡问题。 但请记住,它会杀死该对象上的所有事件 ,而不仅仅是您再次运行的事件。

我不建议在document,html或body级jQuery对象on()使用off()on() 。 只是我的意见。