Layer弹层(父子传值,兄弟传值)
需求:最外面列表界面点修改弹出LayerA界面,再点击LayerA界面中的选择地图坐标按钮弹出LayerB地图界面
这个过程涉及到的:
1:LayerA将坐标传给LayerB,LayerB在地图上显示坐标。
2:LayerB选完坐标点击确定后,地图关闭,LayerB将坐标传回LayerA
列表界面点击修改按钮弹出LayerA界面
LayerB界面点击弹出地图事件
LayerB地图界面点击确定传值给LayerA
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);