【发布时间】:2016-02-02 22:09:07
【问题描述】:
每当 ajax 调用开始时,我都会显示加载动画,而在 ajax 调用完成后会停止。当我在函数中只使用一个 ajax 调用时,它工作正常。但是,如果我在同一个函数中有两个 ajax 调用,似乎加载动画在第一个 ajax 调用完成后消失了。 我怎样才能让它一直保持到所有 ajax 调用完成?
谢谢。
main.js 文件中的Javascript:
//Show loading image on Ajax Start
$(document).ajaxStart(function() {
showPleaseWait();
});
//Hide loading image on Ajax complete
$(document).ajaxComplete(function() {
hidePleaseWait();
});
员工页面中的Javascript:
<script type="text/javascript">
$(document).ready(function () {
$("#ddlEmployeeNumber").change(function () {
$("#log").ajaxError(function (event, jqxhr, settings, exception) {
alert(exception);
});
var employeeNumberSelected = $("select option:selected").first().text();
$.get('@Url.Action("EmployeeSelfServiceInfo")',
{ chosenEmployeeNumber: employeeNumberSelected }, function (data) {
$("#EmployeeSelfServiceInfo").html(data);
});
$.get('@Url.Action("GetEmployeeName")',
{ chosenEmployeeNumber: employeeNumberSelected }, function (data) {
$("#employeeName").text(data);
});
});
});
</script>
function showPleaseWait() {
var modalLoading = '<div class="modal" id="pleaseWaitDialog" data-backdrop="static" data-keyboard="false role="dialog">\
<div class="modal-dialog">\
<div class="modal-content">\
<div class="modal-header">\
<b>Processing...</b>\
</div>\
<div class="modal-body center-block">\
<div class="progress">\
<div class="progress-bar progress-bar-striped active" role="progressbar"\
aria-valuenow="100" aria-valuemin="100" aria-valuemax="100" style="width:100%;">\
Please Wait...\
</div>\
</div>\
</div>\
</div>\
</div>\
</div>';
$(document.body).append(modalLoading);
$("#pleaseWaitDialog").modal("show");
}
function hidePleaseWait() {
$("#pleaseWaitDialog").modal("hide");
}
更新:所以我通过用 .ajaxStop 调用替换现有的 .ajaxComplete 调用来修复它。
【问题讨论】:
-
showPleaseWait();分享此代码以及隐藏和 html 代码。
标签: javascript jquery ajax asp.net-mvc