前言
上一篇我們制作了簡單的后台布局,並且動態加載了側邊欄的節點以及子節點,本篇來做一下tabs。
首先我們來看下tab創建的簡單流程:
按照流程圖我們可以開始編寫html以及js代碼:
1 <div class="layui-body"> 2 <!-- 內容主體區域 --> 3 <div class="layui-tab layui-tab-card" lay-filter="demo" lay-allowclose="true"> 4 <ul class="layui-tab-title"></ul> 5 <div class="layui-tab-content"></div> 6 </div> 7 </div>
1 <script> 2 //JavaScript代碼區域 3 layui.use('element', function () { 4 var element = layui.element, 5 $ = layui.jquery; 6 7 var active = { 8 tabAdd: function (url, id) { 9 //新增一個Tab項 10 element.tabAdd('demo', { 11 title: '新選項' + id//用於演示 12 , 13 content: '<iframe data-frameid="' + id + '" frameborder="0" name="content" scrolling="no" width="100%" src="' + url + '"></iframe>' 14 , 15 id: id //實際使用一般是規定好的id,這里以時間戳模擬下 16 }) 17 {#CustomRightClick(id);//綁定右鍵菜單#} 18 {#FrameWH();//計算框架高度#} 19 } 20 , tabChange: function (id) { 21 //切換到指定Tab項 22 element.tabChange('demo', id); //切換到:用戶管理 23 $("iframe[data-frameid='" + id + "']").attr("src", $("iframe[data-frameid='" + id + "']").attr("src"))//切換后刷新框架 24 } 25 , tabDelete: function (id) { 26 element.tabDelete("demo", id);//刪除 27 } 28 , tabDeleteAll: function (ids) {//刪除所有 29 $.each(ids, function (i, item) { 30 element.tabDelete("demo", item); 31 }) 32 } 33 }; 34 35 //結合菜單展示內容 36 $(".layui-side-scroll a").click(function () { 37 var dataid = $(this); 38 if(dataid.attr('data-id')){ 39 if ($(".layui-tab-title li[lay-id]").length <= 0) { 40 active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id")); 41 } else { 42 var isData = false; 43 $.each($(".layui-tab-title li[lay-id]"), function () { 44 if ($(this).attr("lay-id") == dataid.attr("data-id")) { 45 isData = true; 46 } 47 }) 48 if (isData == false) { 49 active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id")); 50 } 51 } 52 active.tabChange(dataid.attr("data-id")); 53 } 54 55 }); 56 </script>