本教程操作环境:windows10系统、layui2.5.6,本文适用于所有品牌的电脑。
推荐:《layui教程》
layui-open关闭自身窗口解决方法
1、这里的弹窗弹出来的是一个页面,经过了后台才弹出来的一个页面
1.1、弹窗的实现
1.1.1、 js 部分
function getarticlebyid(articleid){ var index = layer.open({ type: 2, title: '修改管理员', area: ['90%', '95%'], shade: 0.8, resize: false, fixed: false, move: false, shadeclose: false, content: '${ctxpath}/article/getarticlebyid?articleid='+articleid }); }
1.1.2、后台java部分
/** * 去到修改文章页面 * */ @requestmapping("/getarticlebyid") public string getarticlebyid(@requestparam("articleid") integer articleid,model model) { mrtarticle mrtarticle = mrtarticleservice.getarticlebyid(articleid); model.addattribute("mrtarticle",mrtarticle); return "article/articleupdate"; }
到这里也面就弹出来了
1.2、关闭该弹窗,在articleupdate.jsp的js部分用以下两行代码它就把自己关闭了
//当你在iframe页面关闭自身时var index = parent.layer.getframeindex(window.name); //先得到当前iframe层的索引parent.layer.close(index); //再执行关闭 layer.alert('提交成功', { skin: 'layui-layer-molv' //样式类名 自定义样式 ,closebtn: 1 // 是否显示关闭按钮 ,anim: 1 //动画类型 ,btn: ['确定'] //按钮 ,icon: 6 // icon ,yes:function(){ //当你在iframe页面关闭自身时var index = parent.layer.getframeindex(window.name); //先得到当前iframe层的索引parent.layer.close(index); //再执行关闭 } });
layer.close(index) - 关闭特定层
关于它似乎没有太多介绍的必要,唯一让你疑惑的,可能就是这个index了吧。事实上它非常容易得到。
codelayui.code//当你想关闭当前页的某个层时var index = layer.open();var index = layer.alert();var index = layer.load();var index = layer.tips();//正如你看到的,每一种弹层调用方式,都会返回一个indexlayer.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层。当然,如果你只想关闭某个类型的层,那么你可以
codelayui.codelayer.closeall(); //疯狂模式,关闭所有层layer.closeall('dialog'); //关闭信息框layer.closeall('page'); //关闭所有页面层layer.closeall('iframe'); //关闭所有的iframe层layer.closeall('loading'); //关闭加载层layer.closeall('tips'); //关闭所有的tips层以上就是layui的open怎么关闭的详细内容。
