将函数(非事件)附加到动态创建的对象

时间:2011-09-22 21:51:07

标签: jquery

要将日期选择器附加到输入元素,我使用的是日期选择器插件,如下所示:

$('.foo').simpleDatePicker();

如何将此函数附加到动态创建的$('。foo')s中,这样如果我将另一个$('。foo')元素追加到页面,那么simpleDatePicker函数是否已经附加了?

我更愿意在document.ready上进行,而不是每次都附加它。 “live()”和“bind()”似乎都不合适。

2 个答案:

答案 0 :(得分:2)

你可以使用.live来使用后期绑定技术。

$(".foo:not(.live)").live('click',function(){
  $(this).addClass('live').datepicker().click();
  return false;
});

答案 1 :(得分:0)

您可以重载jQuery append方法并将规则构建到将.simpleDatePicker()应用于所有.foo元素的重载方法中。

然而,这并不是我推荐的解决方案,因为每次append电话的开销对我来说似乎比收益要高得多。但如果您真的在寻找并需要方便,那么这可能是唯一的解决方案。