有一个链接,当点击时,在将HTML加载到div并清空div之间切换。当单击div加载html时,我使用jQuery ajax load()函数。加载文本时,我想显示“Please wait ...”,所以我尝试使用jQuery ajaxStart()和ajaxStop()方法,但它们似乎只在第一次调用load()函数时才起作用。所以我切换到ajaxSend()和ajaxSuccess,但这似乎只在第一次调用load函数时才起作用。怎么了?
HTML:
<p id="toggleDetail" class="link">Toggle Inspection Detail</p>
<p id="wait"></p>
<div id="inspectionDetail"></div>
jQuery的:
$(
function(){
$('#toggleDetail').click(function(){
if($.trim($('#inspectionDetail').text()).length)
{
$('#inspectionDetail').empty();
}
else
{
$('#inspectionDetail').load('srInspectionDetailFiller.cfm');
}
});
}
);
$(
function(){
$('#wait').ajaxSend(function() {
$(this).text('Please wait...');
});
}
);
$(
function(){
$('#wait').ajaxSuccess(function() {
$(this).text('');
});
}
);
答案 0 :(得分:2)
您应在click
功能中填写“请稍候...”消息,然后在成功完成load
时清除消息:
$('#toggleDetail').click(function(){
if($.trim($('#inspectionDetail').text()).length)
{
$('#inspectionDetail').empty();
}
else
{
$('#wait').text('Please wait...');
$('#inspectionDetail').load('srInspectionDetailFiller.cfm', function() {
$('#wait').text('');
});
}
});
修改虽然ajaxSend
在技术上应该在这里工作,但我不推荐它。使用ajaxSend
,“无论要发送什么Ajax请求,都会调用所有ajaxSend处理程序”。在页面上挂钩所有Ajax请求对你来说似乎有点过分了,你真的只想点击这一次点击。