Layui tab选项卡切换多页面

此文用于记录layui tab使用
官方文档:
tab选项卡结构:https://www.layui.com/doc/element/tab.html
tab页面绑定与切换:https://www.layui.com/doc/modules/element.html
1.新建导航选项

        <div class="layui-side layui-bg-black">
            <div class="layui-side-scroll">
                @*左侧导航区域 *@
                <ul class="layui-nav layui-nav-tree" lay-filter="LeftItem">
                    <li class="layui-nav-item layui-nav-itemed">
                        <a href="javascript:;" class="link-active" lay-href="/Home/LayoutUi" data-id="1" data-title="模具主数据"><i class="layui-icon layui-icon-home"></i>  模具主数据</a>
                    </li>
                    <li class="layui-nav-item layui-nav-itemed">
                        <a href="javascript:;" class="link-active" lay-href="/Home/MoldRepair" data-id="2" data-title="模具保养查询"><i class="layui-icon layui-icon-auz"></i>   模具保养查询</a>
                    </li>
                </ul>
            </div>
        </div>

2.页面主体区域创建tab选项卡:tab容器,title标题,content内容

        <div class="layui-body">
            <div class="layui-tab" lay-filter="tables" lay-allowclose="true">
                <ul class="layui-tab-title"></ul>
                <div class="layui-tab-content"></div>
            </div>
        </div>

3.js代码切换tab页面

    <script>//JavaScript代码区域
        layui.use(['element','layer','jquery'], function(){
            var element = layui.element;
            var $ = layui.jquery;
            //左侧菜单点击事件
            $('.link-active').on('click', function () {
                var dataid = $(this);
                //判断右侧是否有tab
                if ($('.layui-tab-title li[lay-id]').length <= 0) {
                    tabFunction.tabAdd(dataid.attr('lay-href'), dataid.attr('data-id'), dataid.attr('data-title'));
                } else {
                    //判断tab是否已经存在
                    var isExist = false;
                    $.each($('.layui-tab-title li[lay-id]'), function () {
                        //筛选id是否存在
                        if ($(this).attr('lay-id') == dataid.attr("data-id")) {
                            isExist = true;
                        }
                    });
                    //不存在,增加tab
                    if (isExist == false) {
                        tabFunction.tabAdd(dataid.attr('lay-href'), dataid.attr('data-id'), dataid.attr('data-title'));
                    }
                }
                //转到要打开的tab
                tabFunction.tabChange(dataid.attr('data-id'));

            });


            //定义函数 绑定增加tab,删除tab,切换tab几项事件
            var tabFunction = {
                //新增tab url 页面地址 id 对应data-id name标题
                tabAdd: function (url, id, name) {
                    element.tabAdd('tables', {
                        title: name,
                        content: '<iframe data-frameid="' + id + '" scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:800px"></iframe>',
                        id:id
                    });
                },
                //根据id切换tab
                tabChange: function (id) {
                  element.tabChange('tables',id)  
                },
                //关闭指定的tab
                tabDelete: function (id) {
                    element.tabDelete('tables',id)
                }
            }
        });
    </script>

4.多页面显示:
在这里插入图片描述

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现LayUITab选项卡切换显示对应的页面,可以通过以下步骤: 1. 在HTML中创建Tab选项卡的结构,例如: ``` <div class="layui-tab"> <ul class="layui-tab-title"> <li class="layui-this">Tab1</li> <li>Tab2</li> <li>Tab3</li> </ul> <div class="layui-tab-content"> <div class="layui-tab-item layui-show"> <!-- Tab1对应的页面 --> <iframe src="tab1.html"></iframe> </div> <div class="layui-tab-item"> <!-- Tab2对应的页面 --> <iframe src="tab2.html"></iframe> </div> <div class="layui-tab-item"> <!-- Tab3对应的页面 --> <iframe src="tab3.html"></iframe> </div> </div> </div> ``` 2. 在JavaScript中使用LayUITab模块初始化Tab选项卡,例如: ``` layui.use('element', function(){ var element = layui.element; }); ``` 3. 在JavaScript中监听Tab选项卡切换事件,并根据选项卡的索引切换显示对应的页面,例如: ``` element.on('tab', function(data){ if(data.index === 0){ // 切换Tab1对应的页面 $('iframe[src="tab1.html"]').show().siblings().hide(); }else if(data.index === 1){ // 切换Tab2对应的页面 $('iframe[src="tab2.html"]').show().siblings().hide(); }else if(data.index === 2){ // 切换Tab3对应的页面 $('iframe[src="tab3.html"]').show().siblings().hide(); } }); ``` 其中,`data.index`表示选项卡的索引,从0开始计数。根据需要,可以在每个条件分支中使用AJAX请求获取对应的页面并显示在iframe中。注意,如果页面内容不是同源的,需要在iframe中使用`sandbox`属性或者使用其他跨域请求的方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值