需求:最外面列表界面点修改弹出LayerA界面,再点击LayerA界面中的选择地图坐标按钮弹出LayerB地图界面

这个过程涉及到的:

1:LayerA将坐标传给LayerB,LayerB在地图上显示坐标。

2:LayerB选完坐标点击确定后,地图关闭,LayerB将坐标传回LayerA

Layer弹层(父子传值,兄弟传值)-LMLPHP

列表界面点击修改按钮弹出LayerA界面

Layer弹层(父子传值,兄弟传值)-LMLPHP

LayerB界面点击弹出地图事件

Layer弹层(父子传值,兄弟传值)-LMLPHP

LayerB地图界面点击确定传值给LayerA

Layer弹层(父子传值,兄弟传值)-LMLPHP

1:LayerA与LayerB是什么关系?

兄弟关系,如果是父子关系,子的页面会嵌套在父页面里,无法实现子页面比父页面大

关键代码:

parent.layer.open(options);//点击LayerB按钮时,以兄弟页面的形式弹出

2:如何将LayerB地图上坐标的值传给LayerA

监听地图,将点击的坐标传给页面上的一个label保存,在提交的时候读取labael,并通过jq的以id来拿到frame元素的方式,将label的值赋值给兄弟页面的一个文本框里。

关键代码:

var i = $("#lb1").val();

$(parent.frames["Form"].document).find("#AreaPoint").val(i);//LayerB的Frame的id 叫Form,事先在layer的id属性里定义过了
var index = parent.layer.getFrameIndex(window.name);//获取当前页面的name 即HomePeopleForm 都是通过父页面(即列表页)来操作子页面里的元素
parent.layer.close(index);

05-24 09:04