Ajax功能停止加载屏幕

时间:2017-08-01 13:40:44

标签: javascript jquery ajax

我有一个删除函数,用于删除服务器端数据表中的条目。目的是当我通过复选框选择多个项目并按删除时,会在我的函数被调用时出现加载屏幕。一旦正确删除了项目数量,加载就会逐渐消失。

但是,一旦所有项目被正确删除,加载屏幕都不会消失。我希望有人能看到我的错误。谢谢

Ajax代码

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('/');?>";
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

出现此问题是因为元素索引与找到的元素长度不同,所以

if(current==total){}

您的代码中的这种情况始终为false,因为lastIndex == length-1。在这种情况下,条件必须是

if(current==total - 1){}