将jQuery实时搜索添加到动态输入

我正在使用jQuery实时搜索插件,需要将其绑定到类的所有实例。 我的类实例可能是也可能不是动态的。

我知道我可以通过将它嵌套在jQuery Live函数EG $(".myLink").live(click function(){});来实现将它绑定到动态类实例$(".myLink").live(click function(){});

但是,我还需要非动态类来进行绑定。

如何在不定义liveSearch绑定两次的情况下完成此操作? (一旦文档准备好了静态元素,一次在我的单击处理程序中为动态元素)。

这是我的liveSearch代码,不确定它是否重要。

 $(".myClass").liveSearch({ url: 'foo.php', id: 'liveSearchID', parent: '.myParent', }); 

非常感谢。

您可以使用jQuery .on()liveSearch绑定到present(非动态)或将来的元素,如:

 $("#parentContainer").on("click", ".myClass", function(){ $(this).liveSearch({ // options }); // liveSearch }); // on 

请注意 ,您必须将.on()应用于选择器.myClass父容器 ,然后将事件, .myClass作为后代选择器和处理程序传递。

DEMO

.on()需要jQuery 1.7+

编辑 (2012年12月15日 – 太平洋时间下午4:13):

旧版jQuery的用户应该使用.delegate()优先于.live() …所以只需通过这种方式调整你的代码.delegate(selector, eventType, handler) (仍然将.delegate()应用于父容器)喜欢 :

 $("#parentContainer").delegate(".myClass", "click", function() { $(this).liveSearch({ // options }); // liveSearch }); // delegate 

使用.delegate()查看新的DEMO (需要jQuery v1.4.2 +)