这应该很简单,但如果我能解决的话,我会很高兴的。只是想在我的 ajax 正在处理时显示一个 div,然后在完成后隐藏(我在里面放了一个睡眠纯粹是为了测试它的工作,因为它在本地加载得如此之快,我不确定它是否工作)!
html 页面在脚本中有以下代码:-
$(document).ready(function(){
$("#loadingGIF").ajaxStart(function () {
$(this).show();
});
$("#loadingGIF").ajaxStop(function () {
window.setTimeout(partB,5000)
$(this).hide();
});
function partB(){
//just because
}
var scenarioID = ${testScenarioInstance.id}
var myData = ${results as JSON}
populateFormData(myData, scenarioID);
});
然后在我的页面中有一个 div 像这样(我可以在刚刚隐藏的页面的源代码中看到): -
<div id="loadingGIF" ><img src='${application.contextPath}/images/spinner.gif' height="50" width="50"></div>
准备好的代码然后关闭并调用它: -
function populateFormData(results, scenarioID) {
$table = $('#formList')
for(var i in results){
var formIDX = (results[i]["forms_idx"])
var formID = (results[i]["form_id"])
appendSubTable(formIDX, scenarioID, $table, formID);
}
}
其中多次引用此调用多个 AJAX 帖子:-
function appendSubTable(formIDX, scenarioID, $table, formID) {
var $subTable = $table.find("#" + formIDX).find('td:eq(1)').find("div").find("table")
var url = "**Trust me this bits OK ;) **"
$.post(url, {
formIDX : formIDX, scenarioID : scenarioID, formID :formID
}, function(data) {
$subTable.append(data)
}).fail(function() {
});
}
任何指点都感激不尽...
有趣的是,我在我的 ajaxstart 和 stop 中插入了一些警报,但都没有出现,所以我错过了一些明显的东西:S 当我在 Firefox 中检查控制台时,我可以看到我所有的 POST 都在完成......