在学习JQuery的过程中,我遇到了了解AJAX的必要性。使用python的SimpleHTTPServer我正在本地进行实验。我希望在启动AJAX请求时以及完成时都有登录控制台。更准确地说,我有一个按钮,它有一个onclick动作:
function ddd_ajax(){
$("#ajax_content").load("ajax_load.html")
}
...以及表示启动AJAX请求时加载的div:
$("#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? 任何帮助表示赞赏。
答案 0 :(得分:0)
来自docs:
从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");
})
}