2

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

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

如果我像这样进行 ajax 调用,则该事件可以正常工作:

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

知道如何为所有 ajax 完成事件设置全局句柄,而不管它们的来源如何?或者如何处理 Unobtrusive Ajax 的全局事件?

4

1 回答 1

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);
        });
    });
于 2014-07-26T10:37:05.783 回答