第一步添加点击事件的a标签
//showRec是需要添加的监听的名称,d是这行数据
<script>
//添加列点击事件
var tplCompanyName = function (d) {
var html = '<a style="color:#1E9FFF" href="javascript:;" lay-event="showRec" >'+d.cgi+'</a>';
return html;
}
</script>
//绑定到需要点击的列上
//在layui.use中添加监听 showTable是你自己的table的id obj是这行数据 url是你要跳转的tab的lay-id iframe中的url是跳转页面的控制层路径 'tab' 是你要跳转的tab的父页面的lay-filter
table.on('tool(showTable)', function(obj){
switch(obj.event){
case 'showRec':
var lon = obj.data.lon;
var lat = obj.data.lat;
var url = '1387327539137404929'; //跳转到gis的tab页面
//打开tab
if(parent.getTab(url) == 0){
window.parent.layui.element.tabAdd('tab', {
title: 'GIS可视化',
content: '<iframe lay-id="' + url + '" src="../index/gis" frameborder="0" class="admin-iframe" style="width: 1230px;height: 502px"></iframe>' //支持传入html
, id: url
});
}else{
//已经打开则先关闭再打开,这里本来想做每次跳进来都刷新页面,结果研究好几天不会整,暂时先做先关闭再打开。
window.parent.layui.element.tabDelete('tab',url);
window.parent.layui.element.tabAdd('tab', {
title: 'GIS可视化',
content: '<iframe lay-id="' + url + '" src="../index/gis" frameborder="0" class="admin-iframe" style="width: 1230px;height: 502px"></iframe>' //支持传入html
, id: url
});
}
//跳转到这个tab
window.parent.layui.element.tabChange('tab', url);
window.parent.$("iframe[data-frameid='" + url + "']").attr("src", window.parent.$("iframe[data-frameid='" + url + "']").attr("src"))//切换后刷新框架
//参数放到父页面让子页面调用
parent.setLon(lon);
parent.setLat(lat);
}
});
//父页面可以用来传递参数之类的
layui.use('element', function () {
var lon = 1250000;//子页面需要的参数
var lat = 430000;//子页面需要的参数
var $ = layui.jquery;
var element = layui.element; //导航的hover效果、二级菜单等功能,需要依赖element模块
//此方法用于判断此tab是否已经打开
window.getTab=function(url)
{
return $("li[lay-id='"+url+"']").length;
}
//此方法用于子页面进行传参
window.getLon=function()
{
return this.lon;
}
window.setLon=function(lon)
{
this.lon = lon;
}
window.getLat=function()
{
return this.lat;
}
window.setLat=function(lat)
{
this.lat = lat;
}
});
、、、
大概就这样吧。