1. 程式人生 > >layUI 學習記錄

layUI 學習記錄

1 點選導航欄跳轉頁面

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>layout 後臺大布局 - Layui</title>
  <link rel="stylesheet" href="/css/layui.css">
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
  <div class="layui-header">
    <div class="layui-logo">傳送簡訊後臺</div>
  </div>
  
  <div class="layui-side layui-bg-black">
    <div class="layui-side-scroll">
      <!-- 左側導航區域(可配合layui已有的垂直導航) -->
      <ul class="layui-nav layui-nav-tree"  lay-filter="test">
        <li class="layui-nav-item layui-nav-itemed">
          <a class="" href="javascript:;">傳送簡訊</a>
          <dl class="layui-nav-child">
            <dd><a href="javascript:;" data-id="1" data-title="發簡訊" data-url="sentMessage.html" class="site-demo-active" data-type="tabAdd">發簡訊</a></dd>
            <dd><a href="javascript:;" data-id="2" data-title="已發列表" data-url="" class="site-demo-active" data-type="tabAdd">已發列表</a></dd>
          </dl>
        </li>
      </ul>
    </div>
  </div>
  
  <!-- <div class="layui-body">
    內容主體區域
    <div style="padding: 15px;">
    </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">
    <!-- 底部固定區域 -->
    © layui.com - 校園服務
  </div>
</div>
<script src="/layui.js"></script>
<script>
//JavaScript程式碼區域
/* layui.use('element', function(){
  var element = layui.element;
  
}); */

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");
    }
});



</script>
</body>
</html>

參考資料:

參考二