【发布时间】:2016-06-19 18:04:36
【问题描述】:
当 ajax 查询成功时 - ajaxcomplete(包装在回调函数中 - 点击事件)不会被触发。
另一方面,当它不成功(.error)时,ajaxComplete 工作得很好。
为了让它变得更加复杂 - 这里有一个关于这个问题的更详细的真相:
1) 这适用于 Firefox 和 IE。谈到 Chrome - AjaxComplete 实际上是在 ajax 成功时触发的,但它在函数内执行代码时动作缓慢。
非常感谢帮助
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");
});
});
【问题讨论】:
-
请阅读您的 javascript 控制台的输出,并将此信息添加到您的问题中
-
我认为这不是问题...也许是您在 SO 上剪切粘贴的拼写错误...但是您的字符串未在此处关闭
var theUrl = "http://mysecretwebpage/json_create.asp添加"; -
@LouysPatriceBessette - 谢谢,已修复 - 是的,因为“剪切粘贴”
-
太棒了。然后,我会在成功回调中尝试
console.log("Ajax success");...检查您的控制台。 -
把你的
click和change函数放在你的错误和成功回调中(在最后几行)。
标签: javascript jquery ajax