0

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

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

但是,我还需要非动态类也具有绑定。

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

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

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

非常感谢。

4

1 回答 1

2

您可以使用 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

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

于 2012-12-15T03:28:52.210 回答