今天开发遇到一个layer子窗体关闭的问题,纠结了很久在这里做一下记录。
需求描述
在父窗体中弹出子窗体,双击子窗体内容之后关闭子窗体(双击区域后关闭子窗体,并且父窗体获取子窗体选择的值)。界面如下:
刚开始的思路是在子窗体中调用“关闭”按钮事件,但是无论怎么调用都获取不到()。
代码
top.layer.open({
type: 2,
area: ["45%", "35%"],
title: "子窗口",
maxmin: true, //开启最大化最小化按钮
content: "/ztree/demo1",
btn: ["确定",'关闭'],
success:function(layero,index){
var obj =layero.find("iframe")[0].contentWindow;//获取子窗体对象
//定义childDbClick函数
obj.childDbClick=function(){
var win = top.window['layui-layer-iframe' + index];
var area=win.$("#area").val(); //获取子窗体数据
console.log(area);
top.layer.close(index);//关闭窗体
}
},
btn1:function(index, layero){
alert(123);
},
cancel: function (index, layero) {
}
});
在success回调函数中定义childDbClick函数,然后在子窗体调用此函数
callback: {
onDblClick: function(event,treeId,treeNode){
//给隐藏域赋值
$("#area").val(treeNode.name);
//调用childDbClick
childDbClick();
}
}