如何程序化批量隐藏jquery-loading-overlay的所有加载遮罩?
解决批量隐藏jquery-loading-overlay遮罩的问题
你遇到的核心问题是:LoadingOverlay("hide")方法需要调用在当初触发遮罩的原始目标元素上,而非库生成的.loadingoverlay遮罩DOM本身。
快速解决方案:全局隐藏
这个库自带了全局隐藏所有遮罩的方法,一行代码即可完成批量隐藏:
$.LoadingOverlay("hide");
遍历原始目标元素的方案
如果需要更灵活的控制(比如只隐藏特定范围的遮罩),可以利用库给目标元素添加的loadingoverlay-active类——这个类会标记所有当前显示遮罩的原始元素:
$(".loadingoverlay-active").each(function() { $(this).LoadingOverlay("hide", true); });
注意:这里必须用普通
function()而非箭头函数,因为箭头函数会改变this的指向,导致无法获取当前遍历的目标元素。
为什么你原来的代码不生效?
.loadingoverlay是库动态生成的遮罩层DOM,它不是调用LoadingOverlay("show")的原始元素,直接在它上面调用hide方法没有效果。- 箭头函数
()=>{}中的this并非当前遍历的DOM元素,而是继承自外部作用域,所以$(this)指向错误。
内容的提问来源于stack exchange,提问作者cmill
相关产品推荐
相关产品推荐

