0

在学习 JQuery 时,我遇到了了解 AJAX 的必要性。使用 python 的 SimpleHTTPServer 我在本地进行实验。我希望在启动 AJAX 请求以及完成时登录控制台。更准确地说,我有一个按钮,它有一个 onclick 动作:

function ddd_ajax(){
    $("#ajax_content").load("ajax_load.html")
}

...和一个 div 指示在启动 AJAX 请求时加载:

$("#indic_loading").bind('ajaxSend', function(){
    $(this).show();
    console.log("Ajax START!");
    alert("Ajax START!");
}).bind('ajaxComplete', function(){
    $(this).hide();
    console.log("Ajax Complete!");
    alert("Ajax Complete!");
})

不幸的是,两者都没有日志和警报。也许 load() 不会产生任何 AJAX O_o?任何帮助表示赞赏。

4

1 回答 1

0

文档

从 jQuery 1.8 开始,.ajaxStart() 方法只能附加到文档。

例子:

$(document).on('ajaxSend', function(){
    $("#indic_loading").show();
    console.log("Ajax START!");
    alert("Ajax START!");
}).on('ajaxComplete', function(){
    $("#indic_loading").hide();
    console.log("Ajax Complete!");
    alert("Ajax Complete!");
});

这样做的原因是,ajaxStart并且ajaxComplete是发生在页面上的所有 AJAX 的通用事件,它们不绑定到任何特定元素,因为我可以编写如下内容:

// No elements specified
$.ajax("mypage.html", {
    data: { param: 1 }
});

无需绑定到全局事件,您可以只注册.load事件的回调:

function ddd_ajax(){
    console.log("AJAX Started");
    $("#ajax_content").load("ajax_load.html", function() {
        console.log("AJAX Complete");
    })
}
于 2013-10-16T06:56:07.607 回答