layui点击某列打开并跳转指定tab

第一步添加点击事件的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;
        }

    });

、、、

大概就这样吧。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值