我有一个场景,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;
});
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当我第一次加载页面并单击链接时,一切正常.页面通过ajax加载.但是,之后所有的链接都失去了绑定,然后如果我点击任何链接,我会加载整个页面.
我将'on'替换为'live',并且链接开始表现完美,即使在后续点击中也是如此.
我错过了什么?
一个并不简单地替换.live用.on.
$("a.listajax").live('click', function(e))
Run Code Online (Sandbox Code Playgroud)
相当于:
$(document).on('click', 'a.listajax', function(e))
Run Code Online (Sandbox Code Playgroud)
重要
如果你的所有.listajax锚都有一个共同的祖先,那么你不应该从DOM中删除它,你应该使用它(最深的一个)代替document; 这将提高性能.