将 datepicker() 放在动态创建的元素上 - JQuery/JQueryUI

2022-08-30 04:52:58

我已经动态创建了文本框,我希望每个文本框都能够在单击时显示日历。我使用的代码是:

$(".datepicker_recurring_start" ).datepicker();

这只适用于第一个文本框,即使我的所有文本框都有一个名为datepicker_recurring_start的类。

非常感谢您的帮助!


答案 1

这是诀窍:

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

演示

语法的意思是:
为事件添加一个侦听器(在我们的示例中为“focus”)。对于与选择器匹配的匹配节点的所有后代(在我们的示例中),应用事件处理程序(在我们的示例中为内联函数)$('...selector..').on('..event..', '...another-selector...', ...callback...);...selector..body..event.....another-selector....datepicker_recurring_start...callback...

请参阅 http://api.jquery.com/on/,尤其是有关“委派事件”的部分


答案 2

对于我来说,下面的jquery工作:

将“正文”更改为文档

$(document).on('focus',".datepicker_recurring_start", function(){
    $(this).datepicker();
});

感谢斯卡凡德里

注意:请确保您的 ID 对于每个字段都不同