JQuery 'on' 与 'live'

标签 jquery

我有一个场景,JQuery“on”和“live”的执行效果不同。也许有人可以指出原因。我在我的项目中使用 JQuery 1.7.2,在此版本中,“live”已替换为“on”。我在列表页面中使用以下代码。基本上,此页面有一个字母栏,用户可以单击该字母栏,并将加载具有该姓氏的所有客户端。我希望通过 ajax 执行该链接。

代码:

$("a.listajax").on("click", function (e) {
    e.preventDefault();
    var url = $(this).attr("href");
    $("div.content").load(url + " div.content");
    return false;
});

这里的问题是,当我第一次加载页面并单击链接时,一切正常。页面通过 ajax 加载。但是,之后所有链接都失去了绑定(bind),然后如果我单击任何链接,我就会加载整个页面。

我将“on”替换为“live”,链接开始表现完美,即使在后续点击中也是如此。

我错过了什么?

最佳答案

我们不能简单地将 .live 替换为 .on

$("a.listajax").live('click', function(e))

相当于:

$(document).on('click', 'a.listajax', function(e))

重要

如果所有.listajax anchor 有一个共同的祖先,并且不会从DOM中删除,那么您应该使用它(尽可能深的一个)而不是document ;这将提高性能。

关于JQuery 'on' 与 'live',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007741/

相关文章:

javascript - jQuery:斑马条纹表

javascript - 将页面上的一堆输入存储到 JavaScript 数组中?

javascript - jquery addClass/removeClass 不适用于 header

javascript - 使用 jquery 自定义滑动插件

javascript - 如何加快meteor中的mongoDB查询响应时间?

javascript - Jquery 拖放元素保留在列表中并创建另一个

javascript - 添加新字符并设置输入位置

javascript - 使用 JavaScript 进行 HTML5 验证

jquery - JQM 根据表单选择值删除元素

对话框错误中的 JQuery 自动完成