layui完成左邊菜單點擊右邊內容區顯現

layui這個前端框架對後端職員來講供應了極大的輕易,很大一部份同硯在剛接觸到這個框架就如飢似渴的要着手實踐了,恰好近來須要開闢一個背景治理項目,就拿layui來舉行進修和實踐.

還沒有接觸到的同硯能夠先通讀一遍文檔,如許在遇到問題的時刻才能夠對症下藥,細緻研討相干的板塊
本日我們先來進修一下運用layui來完成左邊點擊菜單,內容區顯現tab

試驗結果

《layui完成左邊菜單點擊右邊內容區顯現》

完成歷程

html代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><?php echo $curTitle;?></title>
    <link rel="stylesheet" href="js/layui/css/layui.css">
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo">XXXX營業治理平台</div>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item">
                歡迎光臨,商戶001
            </li>
            <li class="layui-nav-item"><a href="">平安退出</a></li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左邊垂直導航地區-->
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <li class="layui-nav-item">
                    <a class="" href="javascript:;">治理員治理</a>
                    <dl class="layui-nav-child">
                        <dd>
                            <a href="javascript:;" data-id="1" data-title="治理員列表" data-url="index.php?&a=adminList"
                               class="site-demo-active" data-type="tabAdd">治理員列表</a></dd>
                        <dd><a href="javascript:;" data-id="2" data-title="治理員日記" data-url="index.php?&a=adminLogList"
                               class="site-demo-active" data-type="tabAdd">治理員日記</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">生意業務治理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;" data-id="" data-id="3" data-title="存款列表"
                                data-url="index.php?&a=adminList" class="site-demo-active" data-type="tabAdd">存款列表</a>
                        </dd>
                        <dd><a href="javascript:;">代付列表</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">系統治理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">付出API設置</a></dd>
                        <dd><a href="javascript:;">通告設置</a></dd>
                        <dd><a href="javascript:;">控制台</a></dd>
                </li>
            </ul>
        </div>
    </div>

    <!--tab標籤-->
    <div class="layui-tab" lay-filter="demo" lay-allowclose="true" style="margin-left: 200px;">
        <ul class="layui-tab-title"></ul>
        <div class="layui-tab-content"></div>
    </div>

<div class="layui-footer" style="text-align:center;">
    <!-- 底部牢固地區 -->
    © sunway.tk XXXX營業治理平台
</div>
</div>
<script src="/js/layui/layui.js"></script>
<script>
<!--這裡是安排js代碼地區-->
</script>
</body>
</html>

javascript代碼:

    layui.use(['element', 'layer', 'jquery'], function () {
        var element = layui.element;
        // var layer = layui.layer;
        var $ = layui.$;
        // 設置tab實踐鄙人面沒法獲取到菜單元素
        $('.site-demo-active').on('click', function () {
            var dataid = $(this);
            //這時會推斷右邊.layui-tab-title屬性下的有lay-id屬性的li的數量,即已翻開的tab項數量
            if ($(".layui-tab-title li[lay-id]").length <= 0) {
                //假如比零小,則直接翻開新的tab項
                active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id"), dataid.attr("data-title"));
            } else {
                //不然推斷該tab項是不是以及存在
                var isData = false; //初始化一個標誌,為false申明未翻開該tab項 為true則申明已有
                $.each($(".layui-tab-title li[lay-id]"), function () {
                    //假如點擊左邊菜單欄所傳入的id 在右邊tab項中的lay-id屬性能夠找到,則申明該tab項已翻開
                    if ($(this).attr("lay-id") == dataid.attr("data-id")) {
                        isData = true;
                    }
                })
                if (isData == false) {
                    //標誌為false 新增一個tab項
                    active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id"), dataid.attr("data-title"));
                }
            }
            //末了不論是不是新增tab,末了都轉到要翻開的選項頁面上
            active.tabChange(dataid.attr("data-id"));
        });

        var active = {
            //在這裏給active綁定幾項事宜,背面可通過active挪用這些事宜
            tabAdd: function (url, id, name) {
                //新增一個Tab項 傳入三個參數,離別對應其題目,tab頁面的地點,另有一個劃定的id,是標籤中data-id的屬性值
                //關於tabAdd的要領所傳入的參數可看layui的開闢文檔中基本要領部份
                element.tabAdd('demo', {
                    title: name,
                    content: '<iframe data-frameid="' + id + '" scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:99%;"></iframe>',
                    id: id //劃定好的id
                })
                FrameWH();  //盤算ifram層的大小
            },
            tabChange: function (id) {
                //切換到指定Tab項
                element.tabChange('demo', id); //依據傳入的id傳入到指定的tab項
            },
            tabDelete: function (id) {
                element.tabDelete("demo", id);//刪除
            }
        };
        function FrameWH() {
            var h = $(window).height();
            $("iframe").css("height",h+"px");
        }
    });

完成邏輯:動態推斷所點擊的菜單元素,應用元素上設置的data屬性值,在右邊內容區天生頁面iframe舉行動態顯現
參考文獻:layui官網

    原文作者:逐風隨想
    原文地址: https://segmentfault.com/a/1190000014617129
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞