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
的小提琴:
我知道这个问题比较陈旧,但我只想分享我的解决方案,因为它在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()
。 只是我的意见。