如何在没有点击、聚焦等事件的情况下绑定新添加的元素?

How do you bind newly added element without event like click, focus, etc?

本文关键字:新添加 绑定 情况下 添加 元素 事件 聚焦      更新时间:2023-09-26

例如,如果我想将datepicker绑定到新添加的元素。我可以这样写

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

但是如果我不想使用焦点,我只是想绑定每个元素与.datepicker类加载。这可能吗?

动态添加元素后,运行代码将没有日期选择器的元素转换为具有日期选择器的元素。jQuery的日期选择器在初始化时添加了一个.hasDatepicker类,所以:

// After adding elements
$(".datepicker:not(.hasDatepicker)").datepicker();

如果你真的想要自动化它(也许你不控制添加元素的代码),你可以在现代浏览器上使用MutationObserver(并在非现代浏览器上轮询;每隔50毫秒重复上述操作不会给您的页面增加任何明显的开销)。