[英]When ajax success - ajaxComplete is not fired
當ajax查詢成功時-不會觸發ajaxcomplete(包裝在callbackfunction中-click-event)。
另一方面,當它不成功(.error)時,ajaxComplete可以很好地工作。
更復雜的是-這是有關此問題的更詳細的事實:
1)這對於firefox和IE都是正確的。 當涉及到Chrome-Ajax成功后實際上會觸發AjaxComplete,但它會緩慢執行該函數中的代碼。
非常感謝您的幫助
Ajax功能
function fetch_customer_data_from_db(zipcode_string, email_string, query_done, query_fail) {
var theUrl = "http://mysecretwebpage/json_create.asp";
$.ajax({
url: theUrl,
dataType: "json",
success: function (response) {
fadeout_email_field();
query_done = 1;
$('#cust_date_of_birth').css('display', 'none');
$('#customer_data_field_text').css('display', 'block');
$('#validation_message_email').css('visibility', 'hidden');
var customer_data = response.customerdata;
customer_data.forEach(function (custdata) {
document.getElementById("cfname").textContent = custdata.fname;
document.getElementById("clname").textContent = custdata.lname;
document.getElementById("cadress").textContent = custdata.street;
document.getElementById("czipc").textContent = custdata.zipcode;
document.getElementById("clocation").textContent = custdata.location;
document.getElementById("cemail").textContent = custdata.email;
document.getElementById("cmobile").textContent = custdata.mobile;
});
},
error: function() {
if (!query_fail) {
$('#cust_date_of_birth').css('display', 'block');
$('#validation_message_email').css('visibility', 'hidden');
query_fail = 1;
fadeout_email_field();
}
}
});
}
點擊功能(回調)
如果ajax錯誤(在這里ajaxcomplete有效)
$('#checkbox1').change(function() {
if($(this).is(":checked")) {
$( document ).ajaxComplete(function() {
alert("ajax error!!!");
});
}
如果ajax成功(未觸發ajaxComplete)
$('#button_change_cdata').click(function() {
$( document ).ajaxComplete(function() {
alert("ajax success");
});
});
這里的問題是您將ajaxComplete
與success
和error
回調一起使用。 為了更准確,您應該使用ajaxSuccess
和ajaxError
。
ajaxComplete :注冊一個在Ajax請求完成時要調用的處理程序。
ajaxSuccess :每當Ajax請求成功完成時,就附加一個要執行的函數。
ajaxError :注冊當Ajax請求完成並出現錯誤時要調用的處理程序
對於您的ajaxSuccess
和ajaxError
處理程序,請嘗試以下操作:
$( document ).ajaxError(function() {
$('#checkbox1').on("change",function() {
if($(this).is(":checked")) {
alert("ajax error!!!");
}
});
});
$( document ).ajaxSuccess(function() {
$('#button_change_cdata').on("click",function() {
alert("ajax success");
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.