我正在使用jQuery实时搜索插件,需要将其绑定到类的所有实例。我的类实例可能是动态的,也可能不是动态的。
我知道我可以通过将它嵌套在jQuery Live函数中来完成将其绑定到动态类实例,例如$(".myLink").live(click function(){});
但是,我还需要非动态类具有绑定。
如何在不定义两次实时搜索绑定的情况下完成此操作?(一次在文档中准备好静态元素,一次在我的动态元素的单击处理程序中)。
这是我的实时搜索代码,不确定是否重要。
$(".myClass").liveSearch({
url: 'foo.php',
id: 'liveSearchID',
parent: '.myParent',
});
多谢。
jQuery .on()
将liveSearch
绑定到当前(非动态)或将来的元素,例如:
$("#parentContainer").on("click", ".myClass", function(){
$(this).liveSearch({
// options
}); // liveSearch
}); // on
请注意,您必须将.on()
应用于选择器.myClass
的父容器,然后将事件(.myClass
作为后代选择器和处理程序传递。
查看演示
.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()
查看新的演示(需要 jQuery v1.4.2+)