我正在尝试使用ajax,如下所示;
jquery 代码:
$("a.generate").click(function(){
$.ajax({
data: {tag: $(this).html()},
success: function(data){
$("#terms div.content").html(data);
}
});
});
我调用的链接:
<a href="#" class="generate"> tag </a>
调用后,ajax 加载我可以再次调用的链接,如下所示:
<a href="#" class="generate"> term </a>
<a href="#" class="generate"> term2 </a>
问题是,如果我点击 ajax 加载数据的链接,ajax 就不会再加载。
编辑:
在我使用 on() 方法编辑代码后,如下所示,代码不执行任何操作:
$("body").on('click', 'a.generate', function(){
$.ajax({
data: {tag: $(this).html()},
success: function(data){
$("#terms div.content").html(data);
}
});
});
已解决:
jquery版本,我在head标签中添加的是1.6.2,我已经更新了版本,现在没有问题了。再次感谢。
最佳答案
使用 on
添加事件处理程序。
$(document).on("click", "a", function(){
});
这将连接每一个曾经被点击过的 anchor 。为了更具选择性,只需传入第二个参数的选择器
$(document).on("click", "a.someClass", function(){
});
请注意,live
(jQuery 中事件的常见建议)已弃用; on
是添加事件的首选方式,该方式也适用于动态添加的内容。
此外,由于 on
是在 jQuery 1.7 中添加的,如果您使用的是旧版本,则必须使用 delegate
。请注意,选择器和事件的顺序是相反的:
$(document).delegate("a.someClass", "click", function(){
});
关于jQuery ajax,如何从响应文本再次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549118/