使用不引人注目的Ajax进行全局事件

时间:2014-03-14 00:58:10

标签: jquery ajax asp.net-mvc-4 unobtrusive-ajax

当Unobtrusive ajax执行ajax调用时,它似乎不会调用全局jquery ajax事件。以下是我尝试处理此事件的示例。

$(document).ajaxComplete(function () { alert('test'); });

如果我按照以下方式进行ajax调用,该事件可以正常运行:

$.ajax({
    url: "/myurl",
    type: 'GET',
    success: function (data) { //do something }
});

知道如何为所有ajax完整事件设置全局句柄,无论其来源如何?或者如何处理Unobtrusive Ajax的全局事件?

1 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题。由于某种原因,.ajaxComplete无法使用不显眼的ajax。但是,我们确实发现.ajaxStart和.ajaxStop总是被调用。

以下是我们如何使用它来处理微调器并重新解析动态内容的验证:

$(document).ajaxStart(function (event, jqxhr, settings) {
        $("#ajax-spinner").show();
    });

    $(document).ajaxStop(function (event, jqxhr, settings) {
        $("#ajax-spinner").hide();

        $("form").each(function () {
            var form = $(this);
            form.removeData('validator');
            form.removeData('unobtrusiveValidation');
            $.validator.unobtrusive.parse(form);
        });
    });