layui弹窗只有在ajax请求结束时之后才关闭,async阻塞

本文介绍在使用layui框架进行弹窗操作时遇到的问题及解决办法,主要讨论如何正确处理弹窗内的异步加载效果,确保用户体验良好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实践中遇到的坑,在用layui弹窗时,弹窗内容是动态渲染的,在渲染完毕后点击确定请求ajax,但是我想要在点击确定后出现layui的loading,但是总是ajax请求结束之后才加载loading,原因是我在ajax中使用了async:false;去掉即可

layer.open({
    type: 1,
    title: ['请选择要显示的列', 'font-size:1.1rem;','background:#fff !important;','color:black !important;'],
    area: ['500px', '300px'], //宽高
    content: content,
    btn: ['确认', '取消'],
    btn1: function (index, layero) {
        var shezhilieindex = layer.load(1, {
            shade: [0.3, '#E0E0E0'] //
        });
        layer.close(index);
        //选中的列的id
        idList = [];
        var text = $("[class='layui-unselect layui-form-checkbox layui-form-checked']")
       $.each(text,function (i,obj) {
           var content = $($(obj).parent().children()[0]).val();
           idList.push(content);
       });
        console.log(idList);
        $.ajax({
            type: "post",
            url: window.webUrlApi.Load.getListValue,//请求的路径
            dataType: 'json',
            contentType: "application/json;charset=UTF-8",
            data: JSON.stringify({
                "page": 1,
                "pageSize": 5,
                "fakeId": sessionStorage.getItem("cid"),
                "idlist": idList,
                "bomid": sessionStorage.getItem("bomid"),
                "code": sessionStorage.getItem("code"),
                "cid": sessionStorage.getItem("bid")
            }),
            async: true,
            success: function (data) { //请求成功后处理函数。
                layer.close(shezhilieindex);
                console.log(data);
                if(data.ok ){
                    columChecked = {};
                    MaterialList(shezhiliei,data.data);
                    console.log("设置列后的数据");
                    console.log(data.data);
                }else {
                    //重置
                    //MaterialList(infoIndex);
                    layer.alert('获取数据失败');
                }

            },
            error: function () {//请求失败处理函数
                console.log('ajaxError! 请求失败');
            }
        });
    },
    btn2: function (index, layero) {
        layer.close(index);
    },
    cancel:function (index, layero) {
        layer.close(index);
    }
});

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanlijiefengjuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值