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

时间:2012-12-14 23:29:56

标签: javascript jquery search live

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

我知道我可以通过将它嵌套在jQuery Live函数中来完成它与动态类实例的绑定,E.G $(".myLink").live(click function(){});

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

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

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

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

非常感谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

参见 DEMO

.myClass需要jQuery 1.7 +

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

旧版jQuery的用户应优先使用.on()而不是.delegate() ...所以只需通过.live()调整您的代码(仍然将.delegate(selector, eventType, handler)应用于父级容器)喜欢:

.delegate()

使用$("#parentContainer").delegate(".myClass", "click", function() { $(this).liveSearch({ // options }); // liveSearch }); // delegate 查看新的 DEMO (需要jQuery v1.4.2 +)