- layer弹窗
官方文档:https://www.layui.com/doc/modules/layer.html#layer.close
- type - 基本层类型
类型:Number,默认:0
layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)。 若你采用layer.open({type: 1})方式调用,则type为必填项(信息框除外)
- 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层
- 实践关闭弹出窗口
//如果你想关闭最新弹出的层,直接获取layer.index即可
layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
//当你在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
function submitHandler() {
if ($.validate.form()) {
$.modal.loading("正在处理中,请稍后...");
var config = {
url: prefix + "/add",
type: "post",
dataType: "json",
data: $('#form-invIncomeInvoice-add').serialize(),
success: function (result) {
// 关闭遮罩
$.modal.closeLoading();
if (result.code == web_status.SUCCESS) {
// 添加提示信息
$.modal.alert("保存成功");
// 清空表单信息
$.form.reset("form-invIncomeInvoice-add");
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);//关闭当前页
// window.parent.location.replace(location.href)//刷新父级页面
window.parent.location.reload(); //刷新父级页面
} else {
// 错误提示信息
$.modal.alertError(result.msg);
}
}
};
$.ajax(config)
}
}