我有一个场景,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/