javascript - 如何绑定(bind)对使用 AJAX 加载的新数据的点击? -- 查询

标签 javascript jquery

我有一堆带有加载更多的“显示更多”Ajax 请求的链接:

<a href="#" class="item">abc</a>
<a href="#" class="item">abc</a>
<a href="#" class="item">abc</a>

我有一个绑定(bind)函数 this 可以做一些事情:

$('.item').click(function(e) {
  // some stuff
});

问题是当我使用 Ajax 加载更多这些链接时,单击它们不会转到此功能!

我怎样才能“重新绑定(bind)”所有链接以使新链接也能正常工作?

最佳答案

您可以使用 live()delegate()如果您使用 jQuery < 1.7

则绑定(bind)处理程序
$('.item').live('click', function(e) {
  // some stuff
});

$('body')delegate('.item', 'click', function(){

});

如果你使用 jQuery > 1.7,你应该使用 on()但是您必须将事件处理程序附加到您委托(delegate)事件处理的元素,并且当您附加处理程序时该元素必须存在于 DOM 中。
因此,如果您的链接有一个容器,您应该使用它,否则您可以使用 body 元素。

<div id='container'>
<a href="#" class="item">abc</a>
<a href="#" class="item">abc</a>
<a href="#" class="item">abc</a>
</div>

$("#container").on("click",".item",  function(event){

});

或者如果没有容器(它有更大的开销)

$("body").on("click",".item",  function(event){

});

关于javascript - 如何绑定(bind)对使用 AJAX 加载的新数据的点击? -- 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8268444/

相关文章:

javascript - 驯服 Visual Studio Code IntelliSense

javascript - 更改时的 jQuery 文件输入未触发

javascript - 复制某个div中的随机内容,并显示其镜像副本

javascript - 根据预定义配置对 HTML 元素设置动态验证标准

javascript - 如何在 map 上添加鼠标悬停表单

jquery - struts2 Ajax错误结果

javascript - 在发布到 Facebook 之前通过缩略图进行分页的 jQuery 解决方案

JavaScript 和 Json : Excluding Fields From Serialization and Deserialization

javascript - Botium-Core - 只需要断言 Alexa 响应的某些部分

javascript - 如何从 autocomplete.getPlace() 获取 google place api 结果