jquery - .ajaxStart 和 .ajaxStop 由于某些奇怪的原因未触发

标签 jquery ajax asp.net-mvc model-view-controller

当发出 ajax 请求时,我将“Loading”类附加到正文,这样我就可以显示进度动画... 由于某种原因,函数 ae 从未调用过,并且我没有看到任何警报...

function setLoadingPanel()
{
    var timer;
    var body = $("body");

    alert("Set AJAX HOOKS...");
    $("body").on({
        ajaxStart: function ()
        {
            alert("AJAX START");
            //timer = setTimeout(function () { body.addClass("loading"); }, 50)
        },
        ajaxStop: function ()
        {
            alert("AJAX STOP!!!");
            //$(this).removeClass("loading");
            //clearTimeout(timer);
        }
    });
}

我已放置警报来尝试查看是否调用了 Hook ,但由于某种原因没有弹出警报。

这是我使用简单的 AJAX.ActionLink 帮助器的 ajax 请求:

@{
    var ajaxDialogoptions = new AjaxOptions()
    {
        HttpMethod = "GET",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "DialogContainer",
        OnComplete = "OpenDialog('DialogContainer');"
    };
}
@Ajax.ActionLink(Model.AddNewItemButtonTitle, Model.AddActionName, Model.AddActionController, Model.AddActionRoutValues, ajaxDialogoptions, new { Class = "btn btn-primary anti-align-rtl" })

这是我的脚本包:

            Bundle bundle = new Bundle("~/Scripts/jsRTL");

            bundle.AddFile("~/Scripts/Common/jquery-1.9.1.min.js");
            bundle.AddFile("~/Scripts/Common/jquery-ui-1.10.1.custom.min.js");
            bundle.AddFile("~/Scripts/Common/jquery.unobtrusive-ajax.min.js");
            bundle.AddFile("~/Scripts/Validator/jquery.validate.min.js");
            bundle.AddFile("~/Scripts/Validator/jquery.validate.unobtrusive.min.js");
            bundle.AddFile("~/Scripts/Globalize/globalize.js");
            bundle.AddFile("~/Scripts/Globalize/globalize.culture.en-US.js");
            bundle.AddFile("~/Scripts/Globalize/globalize.culture.he.js");
            bundle.AddFile("~/Scripts/Globalize/globalize.culture.he-IL.js");
            bundle.AddFile("~/Scripts/Bootstrap/bootstrap-rtl.js");
            bundle.AddFile("~/Scripts/Common/Common.js");

最佳答案

尝试将 ajaxStart- 和 ajaxStop-Handler 添加到文档中,如下所示:

$(document).ajaxStart(function () {
    alert("AJAX START");
    //timer = setTimeout(function () { body.addClass("loading"); }, 50)
});
$(document).ajaxStop(function () {
    alert("AJAX STOP!!!");
    //$(this).removeClass("loading");
    //clearTimeout(timer);
});

参见here :

As of jQuery 1.8, however, the .ajaxStart() method should only be attached to document.

关于jquery - .ajaxStart 和 .ajaxStop 由于某些奇怪的原因未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426629/

相关文章:

php - ReflectionException 类 App\Http\Controllers\AdminBookingsController 不存在 Laravel-5

jquery - Ajax提交表单,rails3

asp.net-mvc - 您更喜欢哪个 ASP.NET MVC 控件工具集?

c# - 如何从 NopCommerce v3.5 的设置表加载记录

c# - 需要一些精简库/代码来创建缩略图并且最适合与 ASP.NET MVC 一起使用

javascript - 如何通过内联编辑从 jqGrid 列中获取 Select 的文本

javascript - 从 json 转换为经典 asp

ajax - JSF 2.2 - 文件上传不适用于 Ajax。表单似乎具有不正确的编码类型(仅通过 AJAX)

php - 如何将 php 页面加载到 div 中并运行其(java)脚本?

php - 上传图片而不提交表单