我需要给定类中的每个文本输入都是一个日期选择器。类似的东西:
$("input[type=text].time").datepicker();
但是我通过Jquery.load()添加了很多代码,所以我相信我需要一个委托。问题是我不知道该怎么做,因为据我所知,load事件不能在委托中使用。如果它存在将很容易:
$(document).delegate("input[type=text].time", "load", function(){
$(this).datepicker();
});
答案 0 :(得分:16)
$("body").delegate("input[type=text].time", "focusin", function(){
$(this).datepicker();
});
我在身体上使用了委托,因为我不知道你的代码是否在你可以定位的其他容器中。
这是一个针对具有委托的特定div
的小提琴:
答案 1 :(得分:0)
我知道这个问题相对古老,但是我只想分享我的解决方案,因为它在2018年仍然很重要。
$('#container').off().on('focusin', '.date', function () => {
$(this).datepicker();
});
如果您将jQuery与TypeScript一起使用
$('#container').off().on('focusin', '.date', (e) => {
$(e.currentTarget).datepicker();
});
您会在这里注意到off()
函数。这将清除有问题的Jquery对象中的事件。因此,您不会遇到任何冒泡的问题。不过请记住,它会杀死该对象上的所有事件,而不仅仅是您再次运行的事件。
我不建议在文档,html或正文级别的jQuery对象上使用off()
或on()
。不过只是我的意见。