jQuery 回调发生得太快?

标签 jquery asp.net-mvc ajax callback

我正在使用 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/

相关文章:

发布到 Azure 时,区域中的 ASP.NET Core 文件夹不会加载资源

asp.net-mvc - 为什么 SelectList SelectedValue 在 HttpGet 上有效,但在 HttpPost 上无效?

php - Ajax 响应上的 Jquery 事件

javascript - 表单验证和提交

php - fatal error :mysqli

jQuery:两个下拉列表构建图像网址并显示图片

javascript - 为 1 个日期标签调用 2 个 JavaScript 函数

javascript - 使用 $.get 和 $.each 生成 jQuery html 代码

javascript - 如何选择父标签?

ajax - 如果 AJAX 请求内容长度超过允许的最大长度,则在 MVC 中使用 HttpModule 返回新响应