在jquery 3.11版本中,$.ajaxStart()無法被觸發
主要原因有兩種:
- 全局的AJAX事件(ajaxStart, ajaxStop, ajaxSend, ajaxComplete, ajaxError, and ajaxSuccess) 只能在document元素上觸發。修改AJAX事件監聽程序到document元素上。例如,如果目前的代碼看起來像這樣:
$(“#status”).ajaxStart(function(){ $(this).text(“Ajax started”); });
修改成這樣:
$(document).ajaxStart(function(){ $(“#status”).text(“Ajax started”); });
2.ajaxStart是一種全局的配置,是jQuery中對ajax請求的一種全局攔截配置。。通常用來偵測頁面中異步請求的發送/結束.
需要提前進行配置:
$(function () {
$("#onload").hide();
//調用在document 提前配置 檢測ajax 狀態
$(document).ajaxStart(function () {
$("#onload").show();
});
$(document).ajaxStop(function () {
$("#onload").hide();
});
$("#send").click(function () {
$.ajax(
{
type:"POST",
url:"http://xiaocai.com/ajax/post1.php",
datatype:"php",
success:function (data) {
alert(data);
},
error: function (xml,status,error) {
console.log(error);
},
global:true
}
);
});
});