我正在使用 ASP.NET MVC C#
我有一个删除书籍的 jQuery 调用,然后在回调中我调用一个刷新书籍列表的函数。
function rembook(id) {
var agree=confirm("Deletion cannot be undone. Continue?");
if (agree)
{
jQuery.ajax({ url: "/Books/Delete/" + id, dataType: null, type: "POST", cache: true, callback: LoadBooks(), data: null });
return false;
}
else
return false;
}
这里是 LoadBooks(),如果重要的话:
function LoadBooks() {
$(".BookList").hide();
$(".BookList").load("/Books/Edit/<%= Model.AuthorID %>");
$(".BookList").show('slow');
}
帖子工作并调用 LoadBooks() 函数。但是,刷新的图书列表仍然包含已删除的图书。如果我随后手动调用 LoadBooks() 函数(通过页面上的链接),书籍就会重新加载,而不会删除已删除的书籍。为什么第一次重新加载图书时仍显示已删除的图书?是否发生在图书实际删除完成之前?
(我使用 $.post("/Books/Delete/"+ id, LoadProperties()); 得到相同的结果
谢谢。
最佳答案
callback: LoadBooks()
应该只是 callback: LoadBooks,
。
通过使用callback: LoadBooks()
,您可以将回调设置为函数的返回值,而不是函数本身。
此外,我认为它应该是完整
而不是回调
。
关于jQuery 回调发生得太快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1749840/