我有一个点击处理程序,它读取a标记的href属性并通过ajax加载新内容。该函数返回false,因此它不跟随href url。这种方法只运行一次,但此后每次都不会调用该函数,也不会异步加载内容,而是跟随浏览器中的链接。
$ ("document").ready( function () {
$(".post_update").click( function () {
$("#dashboard_content").html(ajax_load).load($(this).attr('href'));
return false;
});
});
<a href="{{ path('post_update', {"id":post.id}) }}" class="post_update">Edit</a>
你不应该使用document作为字符串,它本身就是一个对象,试试下面的代码。
由于链接在仪表板容器内,所以在这种情况下应该使用live。
$(document).ready( function () {
$("a.post_update").live('click', function () {
$("#dashboard_content").html(ajax_load).load($(this).attr('href'));
return false;
});
});
如果.post_update
在#dashboard_content
内部,则问题是事件处理程序绑定的元素现在已经消失了。最简单的解决方法是使用jQuery.live
法。所以你的代码看起来像:
$(document).ready(function () {
$(".post_update").live("click", function (e) {
$("#dashboard_content").html(ajax_load).load($(this).attr('href'));
return false;
});
});