将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 +)