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



我正在使用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+)

最新更新