layuiadmin iframe 版 parent.layui.admin.events.closeThisTabs() 关闭当前页面详解

parent.layui.admin.events.closeThisTabs()

这个方法解理的误区,的确是可以关闭当前页面,但实际上这个的作用是关闭当前被激活的页面,所为激活就是......,tabs 导航里的 tab 是选中状态,页面也是对应的 tab 内容。

这样的话就说明并不是真正关闭当前页面,比如有个场景:

index.html 是父页面,a,b,c 是子 tabs 标签页,当在 b 中(激活的)动态执行这行语句是可以关闭 b 页面的,但是有一个问题,如果 b 页面执行了一个延时操作(比如 3 秒钟)后再动态关闭当前页面(b),如果还没有到 3 秒,这时点击激活了 a 页面(切换 tab),当 3 秒过去后关闭的并不是 b 而是 a 页面,这时候就会感觉莫名其妙,所以 parent.layui.admin.events.closeThisTabs() 语义并不准确,应该是 parent.layui.admin.events.closeCurrentActiveTabs(),之类的...

解决方法:

var fileName = window.location.href.match(/.*\/(.*\.*)/i)[1];
$.each(parent.layui.$('#LAY_app_tabsheader>li'), function(index, li) {
    var $li = $(li);
    if ($li.attr('lay-id').indexOf(fileName) > -1) {
        $li.find('.layui-tab-close').trigger('click');
        return
    }
})

这个可以自己封成函数或者方法来执行,这时不管在当前激活的是哪个页面,关闭的都是动态执行关闭命令的页面。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值