本天在写代码过程中遇到一个问题.
layer本身自带弹窗按钮,可自定义内容及方法,如下:
function openCurtain(){top.layer.open({type : 2,area : [ 500, 500 ],maxmin : true,title : '窗帘设置',content : 'meetingController.do?meetingCurtainPop',btn: ['确定', '关闭'], //按钮显示--显示什么''中输入什么,若不想显示,btn及其内代码不加入yes: function(index, layero) { //点击确定时的方法var returnVal = layero.find("iframe")[0].contentWindow.saveTimer();top.layer.close(index);layer.open({title:'提示信息',offset:'rb',content:'定时任务更新成功',time:6000,btn:false,shade:false,icon:1,skin:'jz',shift:2});},success : function(layero,index) {console.log('open');var body = top.layer.getChildFrame('body', index);console.log(body);}});}
因为需求问题,我自己并没有使用layer自带按钮,而是自己写入两个按钮,如下所示(使用了bootstrap框架):
<div class="col-lg-12" style="text-align: center;"><button type="button" class="btn btn-primary buttonStyle" style="background-color:#3d88f5;" onclick="changeSure();">确定</button><button type="button" class="btn btn-default buttonStyle" onclick="formClose();">取消</button></div>
changeSure()为点击确定按钮时触发的方法;formClose()为点击取消时触发的方法。
function changeSure(){//写入点击确定按钮时,要执行的代码changeController(modelArray);//(此处下面语句二选一)setTimeout(function(){ formClose(); }, 1000);//如果上面执行的代码涉及到后台,使用此方式,延迟执行关闭formClose(); //如果不涉及到后台,可直接调用关闭方法,选此句}
重点:关闭当前弹出层。
window.formClose = function(){var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引parent.layer.close(index); //再执行关闭 }