今天碰到了了这段代码:
if(type==0)//在父页面显示对话框,即基于父页面操作,需要注意的是,子页面的变量,父页面是直接获取不到的,即type在父页面并没有被定义的 { parent.showDialog(title,href); }else{ parent.parent.showDialog(title,href);//在父页面的父页面显示对话框,即基于父页面的父页面进行操作 }
一切顺利之后,会调用最底层子页面的onSuccess()函数:
onSuccess:function(object){ addOrUpdate(object); }
现在的问题是:
最底层子页面,父页面,父页面的父页面都引入了相同的JS,这个共同的JS中都有addOrUpdate(object);方法,那么究竟是调用那一个页面的方法??
首先执行成功之后调用子页面的onSuccess()函数不会改变目标,即开始在哪个页面操作,执行这儿onSuccess函数之后还是在哪个页面操作,所以关键在看对话框是在哪里弹出来的,如果在父页面弹出就调用父页面的addOrUpdate(object)函数;就会去找父页面的id为_list的数据表格,并插入数据.
因为是在父页面的父页面调用了函数,所以代码如下:
onSuccess:function(object){ if(tpye==0){//在最底层子页面的定义的变量可以取到,但是调用函数是对话框页面的函数 document.getElementById('userOrCompany').contentWindow.addOrUpdate(object); }else{ document.getElementById('userOrCompany').contentWindow.$("#personnel").panel('body').find('iframe')[0].contentWindow.addOrUpdate(object);//调用最底层子页面的函数 } }
寻找tab---可以利用
var tab = $('#tt').tabs('getSelected');
<div id="mainTab" class="easyui-tabs"> <div id="organ" title="部门管理" > <div id="jobs" title="岗位管理"> <div id="personnel" title="员工管理"> </div> 可以使用:$("#personnel")来获取tab