Javascript Ajax函数停止加载屏幕
我有一个delete函数,它从服务器端数据表中删除一个条目。其目的是当我通过复选框选择几个项目并按delete键时,调用我的函数时会出现一个加载屏幕。一旦项目的数量被正确删除,加载应该消失 然而,当所有项目被正确删除后,加载屏幕并没有消失。我希望有人能看到我在这方面出了什么问题。多谢各位 Ajax代码Javascript Ajax函数停止加载屏幕,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个delete函数,它从服务器端数据表中删除一个条目。其目的是当我通过复选框选择几个项目并按delete键时,调用我的函数时会出现一个加载屏幕。一旦项目的数量被正确删除,加载应该消失 然而,当所有项目被正确删除后,加载屏幕并没有消失。我希望有人能看到我在这方面出了什么问题。多谢各位 Ajax代码 function deleteDocumentPrepare(){ var delCounter = 0; if(checked!==null){ $('.loading'
function deleteDocumentPrepare(){
var delCounter = 0;
if(checked!==null){
$('.loading').show();
$.each(checked, function(key, value) {
// console.log(checked.length);
deleteDocument(value,delCounter,checked.length);
delCounter++;
// console.log(delCounter);
});
}
}
function deleteDocument(input,current,total){
// console.log("current:"+current);
// console.log("total:"+total);
var id = input;
$.ajax({
method: "POST",
url: "<?php echo site_url('/Common/Check'); ?>",
success: function(data){
if("<?php echo $this->data['controller'];?>"=="Support"){
var url = '<?php echo site_url('Admin'.$this->data['controller'].'/Agent/Delete/'); ?>';
}else{
var url = '<?php echo site_url('Admin'.$this->data['controller'].'/Delete/'); ?>';
}
if(data==true){
$.ajax({
type:'POST',
url:url,
data:'id='+id,
beforeSend: function () {
// $('.loading').show();
},
success:function(result){
if(current==total){
// console.log("END");
$('.loading').fadeOut("slow");
checked=[];
table.draw();
}
}
});
}else{
window.location.href="<?php echo site_url('/');?>";
}
}
});
}
函数deleteDocumentPrepare(){
var-delCounter=0;
如果(选中!==null){
$('.loading').show();
$。每个(选中,函数(键,值){
//控制台。日志(已检查。长度);
deleteDocument(值、delCounter、checked.length);
delCounter++;
//控制台日志(delCounter);
});
}
}
功能删除文档(输入、当前、总计){
//console.log(“当前:+当前”);
//控制台日志(“总计:+total”);
变量id=输入;
$.ajax({
方法:“张贴”,
url:“”,
成功:功能(数据){
如果(“=”支持“){
var url='';
}否则{
var url='';
}
如果(数据==true){
$.ajax({
类型:'POST',
url:url,
数据:'id='+id,
beforeSend:函数(){
//$('.loading').show();
},
成功:功能(结果){
如果(当前==总计){
//控制台日志(“结束”);
$('.loading')。淡出(“慢速”);
选中=[];
table.draw();
}
}
});
}否则{
window.location.href=“”;
}
}
});
}
出现此问题是因为元素索引和找到的元素长度之间存在差异,所以
if(current==total){}
代码中的此条件将始终为false
,因为lastIndex==length-1
。在这种情况下,条件必须是
if(current==total - 1){}
加载屏幕隐藏在哪里?到达那行代码了吗?若否,原因为何?当您逐步使用浏览器的调试器时,行为与您期望的有何不同?ajax功能完成后,加载屏幕将隐藏。这是预期的操作,当您调试时,它在哪里失败?它在if(current==total)行失败。即使值与参数匹配,它也不会输入它。我认为,您应该在AJAX数据中发送
current
和total
,然后从请求中再次发送它们。您将在result
中收到这些值,并发布您可以进行检查的帖子。啊,您的为我工作。我真不敢相信我忽略了这样的事情,5分钟过后我会把它标记为正确的。非常感谢。对这件事有了新的认识:-)