layui的layer.close(index)无法关闭弹出层一种可能
做的是层间弹出,type是1,是个弹出选择框
然后用this.index=open({...})方式记录了index,然后在点击确定的时候关闭整个弹出层。
然后很奇怪的在另一个页面能关闭,在这个岗位页面关闭不了。
自己尝试找到弹出的最顶层,然后隐藏,但发现layer关闭后就会销毁自己添加的标签,自己找比较麻烦,遂放弃。
然后在确定按钮事件里打印this.index,能打印出来,一直是4。
反复调试中,找到弹出层最外层,发现其id是“xxxxxx1”。。。。
有些疑惑,在控制台直接layer.close(1),弹出层关闭!
。。。。T M D 不知道为什么,我页面的这个button点击一次触发4次!然后我在layer.open里加了id,防止其重复弹出,倒是不重复弹出了,但每次执行layer.open都会返回一个新的index,覆盖原来的。
。。。。还非常整齐的,每次点击触发4次click事件!
对不上自然关闭不了。。。
最后经过思考,传入弹出层内一个元素,向上找到弹出层最外层的div,其id为layui-layer{index}的形式,获取其id,获取id最后的数字,以此关闭。问题完美解决
function closeLayer(jq){ let index=0 let p=jq while(!p.hasClass("layui-layer-page")){ p=p.parent() if(!p){ console.error("传入的jq对象没有在layer里,其父级已经为空") return } index++ if(index>100){ console.error("传入的jq对象没有在layer里,100次向上查找未找到layer的div") return } } let id=p.attr("id") console.info(id) index=1 let str while(index<id.length){ str=id.substr(index*-1) if(isNaN(str)){ str = id.substr((index-1)*-1) break } index++ } console.info(str) layer.close(str) return str }
分类:
layui
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?