javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > layer执行完毕关闭当前弹出层

layer弹出层的关闭问题详解之在执行完毕后关闭当前弹出层

作者:amberom

在前端页面中用layer打开窗口供用户输入或选择是非常常见的用法,但是有时为了完成一次操作,需要弹出多个窗口进行选择、输入或者提示,因此在关闭窗口的时候需要实现指定关闭任意窗口,需要的朋友可以参考下

前言

今天再用layui写东西的时候遇到一个问题,就是在弹出层操作完之后不知道怎么在弹出层内操作关闭这个弹出层,查阅资料之后终于找到了解决的办法。下面两段出自官网文档。

一、layer.close(index) - 关闭特定层

关于它似乎没有太多介绍的必要,唯一让你疑惑的,可能就是这个index了吧。事实上它非常容易得到。

//当你想关闭当前页的某个层时
var index = layer.open();
var index = layer.alert();
var index = layer.load();
var index = layer.tips();
//正如你看到的,每一种弹层调用方式,都会返回一个index
layer.close(index); //此时你只需要把获得的index,轻轻地赋予layer.close即可
//如果你想关闭最新弹出的层,直接获取layer.index即可
layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
//当你在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭   

二、layer.closeAll(type) - 关闭所有层

如果你很懒,你不想去获取index你只想关闭。那么closeAll真的可以帮上你。如果你不指向层类型的话,它会销毁掉当前页所有的layer层。当然,如果你只想关闭某个类型的层,那么你可以

layer.closeAll(); //疯狂模式,关闭所有层
layer.closeAll('dialog'); //关闭信息框
layer.closeAll('page'); //关闭所有页面层
layer.closeAll('iframe'); //关闭所有的iframe层
layer.closeAll('loading'); //关闭加载层
layer.closeAll('tips'); //关闭所有的tips层    

三、关闭弹出层之后刷新父页面

例如:在增加用户的时候,增加会弹出一个新的弹窗页面,增加成功之后会有提示性的小的alert,在点击确定之后,弹窗页面关闭,并且刷新用户列表的页面数据。

只需要在关闭弹窗的时候加这个window.parent.location.reload();//刷新父页面

success: function(data){
    var res = eval('(' + data + ')');
    if(res.status == '1'){
        layer.msg("添加成功!");
        layer.alert("添加成功!",function(){
            window.parent.location.reload();//刷新父页面
            parent.layer.close(index);//关闭弹出层
        });
    } else{
        layer.msg("添加失败!");
    }
},

总结 

到此这篇关于layer弹出层的关闭问题详解之在执行完毕后关闭当前弹出层的文章就介绍到这了,更多相关layer执行完毕关闭当前弹出层内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文