直接调用 layer.closeAll('loading') 可一次性关闭页面所有 loading 层,需确保 layui.js 已加载;适用于 AJAX 错误兜底、表格 done 回调等场景,但不能替代请求级独立控制。

需要在页面中一次性清除所有正在运行的加载动画,避免多个请求共存时 loading 层残留导致界面卡顿或用户误操作。
直接调用 layer.closeAll('loading')
执行 layer.closeAll('loading'); 即可关闭当前页所有 type 为 loading 的层。
这一步操作起来很简单,直接在需要清理的位置写一行代码就行。
【必须确保 layer 已完整加载】——如果在 layui.js 尚未执行完毕时就调用该方法,会静默失败且无任何报错提示。
在 AJAX 请求失败后兜底清理
当使用 jQuery 或原生 fetch 发起请求时,若未在 success/error 中手动关闭对应 loading,可用此方式补救:
方法一:在全局错误监听中触发$(document).ajaxError(function() { layer.closeAll('loading'); });
方法二:在 Promise 拒绝链末尾统一处理.catch(err => { layer.closeAll('loading'); throw err; });
注意:这种方法仅作兜底,不能替代每个请求独立开、独立关的主逻辑。
表格渲染完成时关闭 loading
Layui 表格(table.render)在数据加载过程中可能自动启用 loading,需在生命周期回调中精准关闭:
第一步:配置表格时开启 loading 提示table.render({ elem: '#demo', url: '/api/list', loading: true, ... });
第二步:在 done 回调中执行关闭done: function(res, curr, count) { layer.closeAll('loading'); }
这一步不能放在 parseData 或 request 配置里,否则会在请求发出前就关闭,导致 loading 一闪而过无法感知。











