layert弹出层关于layer.open,打开页面时的用法

layer弹出层,当设置type为2时,引入其他页面中内容。

最近项目里碰到的问题,在父页面用layer.open打开子页面后,从子页面如何调用父页面的方法,从子页面如何关闭父页面中layer弹出层。

父页面打开弹出层

type设置为2
content中为打开的其他页面的地址

 //点击按钮,layer打开其他页面的弹出层
   $('#add').click(function(){
       var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
           allNode = zTree.getNodes(),  //ztree下所有节点
           nodes = zTree.getSelectedNodes(),  //获取ztree下得选中节点
           treeNode = nodes[0];

            if(treeNode==undefined){
                layer.alert('还没选择部门');
                return false;
            }else{
                layer.open({
                    type: 2,
                    title: '编辑',
                    shadeClose: true,
                    shade: 0.8,
                    area: ['500px','540px'],
                    content: 'www.baidu.com'+treeNode.id
                });
            }
   });

在打开的子页面中,提交表单,并根据提交状态判断是否关闭该子页面,当关闭了子页面弹出层,刷新父页面的一个页面。

开始我是在layer.alert的回调函数中直接layer.closeAll(),并不好使。

最终实现
1、通过获取父页面下得layer的层级,并在父页面下关闭该层级的layer
2、通过window.parent.fn 调用父页面中自定义的函数,刷新父页面中的列表。

$("input[type='button']").click(function(){
		$.ajax({
			type:'post',
			url:'',
			data:$("#user").serialize(),
			dataType:'json',
			success:function(data){
				console.log(data);
				if(data.flag==0){
					layer.alert(data.msg,function(){
						var index=parent.layer.getFrameIndex(window.name);  //获取父页面中layer的层级
						parent.layer.close(index);  //当alert关闭后,关闭父页面中的layer弹出层
						return true;
					})
					window.parent.refreshFn();  //调用父页面自定义的方法刷新父页面
				}else{
					layer.alert(data.msg)
				}
			}
		});
    });

你可能感兴趣的:(功能插件)