我有一个使用AJAX的基本jQuery函数。单击按钮后,将进行AJAX调用,成功后,将模式的HTML设置为响应。
代码工作正常,但是我遇到的问题是第二次启动模式时。它显示上一个AJAX调用的HTML内容,然后在1-2之后立即更改。因此,我觉得在完全将HTML设置为响应之前,正在调用show方法。
当前代码
$(document).ready(function () {
$('body').on('click',
'.show-quickview',
function() {
$.ajax({
type: "GET",
url: '/Product/Index',
data: {
slug: this.id,
type: this.name,
},
success: function(response) {
$("#quickviewModal").html(response);
$('#quickviewModal').modal('show');
}
});
});
});
我试图将演出放到完整的地方,但我仍然得到相同的答复。
$(document).ready(function () {
$('body').on('click',
'.show-quickview',
function() {
$.ajax({
type: "GET",
url: '/Product/Index',
data: {
slug: this.id,
type: this.name,
},
success: function(response) {
$("#quickviewModal").html(response);
},
complete: function(response) {
$('#quickviewModal').modal('show');
}
});
});
});
请问如何使quickviewModel仅在完全设置为AJAX响应后才能显示。
答案 0 :(得分:0)
也许您可以尝试以下方法:
$.ajax({
type: "GET",
url: '/Product/Index',
data: {
slug: this.id,
type: this.name,
},
beforeSend: function() {
$("#quickviewModal").html("");
},
success: function(response) {
$("#quickviewModal").html(response);
$('#quickviewModal').modal('show');
},
complete: function(response) {
}
});
有关jQuery状态的更多信息,您可以在这里找到:http://api.jquery.com/jquery.ajax/