(第一次发布考虑欠周,修正之后发布...) 为Tab选项卡增加右键弹出菜单,例如:关闭当前、关闭其它.... - 支持页面多个Tab选项卡弹出菜单单独定义 - 支持自定义弹出项和弹出事件(使用registMethod属性进行注册) - 支持自定义图标(目前仅支持LayUI默认图标)
<div id="nav1">注意:
<!-- 顶部切换卡 -->
<!--ul的id要和lay-filter一致-->
<div class="layui-tab" lay-filter="main_tab1">
<ul id="main_tab1" class="layui-tab-title">
<li lay-id="0" class="layui-this">网站设置</li>
<li lay-id="1">用户管理</li>
<li lay-id="2">权限分配</li>
<li lay-id="3">商品管理</li>
<li lay-id="4">订单管理</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">这是 网站设置 内容</div>
<div class="layui-tab-item">这是 用户管理 内容</div>
<div class="layui-tab-item">这是 权限分配 内容</div>
<div class="layui-tab-item">这是 商品管理 内容</div>
<div class="layui-tab-item">这是 订单管理 内容</div>
</div>
</div>
</div>
layui.config({
base: 'module/',
}).use(['element', 'tabrightmenu'], function () {
let element = layui.element;
let rightmenu_ = layui.tabrightmenu;
// 默认方式渲染全部:关闭当前(closethis)、关闭所有(closeall)、关闭其它(closeothers)、关闭左侧所有(closeleft)、关闭右侧所有(closeright)、刷新当前页(refresh)
rightmenu_.render({
container: '#nav1',
filter: 'main_tab1',
});
});
layui.config({使用自定义弹出项最重要的就是navArr属性。该属性是一个对象集合,每一个对象描述了菜单项的一些基本信息(eventName:事件类型、title:菜单项标题、icon:图标class类名)
base: 'module/',
}).use(['element', 'tabrightmenu'], function () {
let element = layui.element;
let rightmenu_ = layui. tabrightmenu;
// 默认方式渲染全部:关闭当前(closethis)、关闭所有(closeall)、关闭其它(closeothers)、关闭左侧所有(closeleft)、关闭右侧所有(closeright)、刷新当前页(refresh)
rightmenu_.render({
container: '#nav1',
filter: 'main_tab1',
navArr: [
{eventName: 'closethis', title: '关闭当前', icon: 'layui-icon-close'},
{eventName: 'closeall', title: '关闭所有'},
{eventName: 'closeothers', title: '关闭其它'},
//自定义菜单项,此时dataType属性表示自定义事件
{title: "测试", eventName: 'test'},
{title: "测试2", eventName: 'test2'},
],
//注册自定义事件
registMethod: {'test': testMethod, 'test2': test2Method}
});
function testMethod(id, title, currentNavGroup, dom) {
changeCurrentTabContent(currentNavGroup, "[测试]触发,触发的ID:" + id + ",标题:" + title);
}
function test2Method(id, title, currentNavGroup, dom) {
changeCurrentTabContent(currentNavGroup, "[测试2]触发,触发的ID:" + id + ",标题:" + title);
}
function changeCurrentTabContent(currentNavGroup, content) {
$(currentNavGroup + " div[class='layui-tab-item layui-show']").html(content);
}
});
<h1>选项卡1</h1>
<div id="nav1">
<!-- 顶部切换卡 -->
<!--ul的id要和lay-filter一致-->
<div class="layui-tab" lay-filter="main_tab1">
<ul id="main_tab1" class="layui-tab-title">
<li lay-id="0" class="layui-this">网站设置</li>
<li lay-id="1">用户管理</li>
<li lay-id="2">权限分配</li>
<li lay-id="3">商品管理</li>
<li lay-id="4">订单管理</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">这是 网站设置 内容</div>
<div class="layui-tab-item">这是 用户管理 内容</div>
<div class="layui-tab-item">这是 权限分配 内容</div>
<div class="layui-tab-item">这是 商品管理 内容</div>
<div class="layui-tab-item">这是 订单管理 内容</div>
</div>
</div>
</div>
<h1>选项卡2</h1>
<div id="nav2">
<!-- 顶部切换卡 -->
<div class="layui-tab" lay-filter="main_tab2">
<ul id="main_tab2" class="layui-tab-title">
<li lay-id="11" class="layui-this">权限管理</li>
<li lay-id="12">机构管理</li>
<li lay-id="21">字典管理</li>
<li lay-id="31">用户管理</li>
<li lay-id="41">物流管理</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">这是 权限管理 内容</div>
<div class="layui-tab-item">这是 机构管理 内容</div>
<div class="layui-tab-item">这是 字典管理 内容</div>
<div class="layui-tab-item">这是 用户管理 内容</div>
<div class="layui-tab-item">这是 物流管理 内容</div>
</div>
</div>
</div>
layui.config({以上就可以实现一个页面多个选项卡进行不同处理,实用性更强。
base: 'module/',
}).use(['tabrightmenu'], function () {
let element = layui.element;
let rightmenu_ = layui.tabrightmenu;
// 默认方式渲染全部:关闭当前(closethis)、关闭所有(closeall)、关闭其它(closeothers)、关闭左侧所有(closeleft)、关闭右侧所有(closeright)、刷新当前页(refresh)
// 渲染nav1
rightmenu_.render({
container: '#nav1',
filter: 'main_tab1',
});
// 渲染nav2,渲染默认部分弹出项+自定义弹出项
rightmenu_.render({
container: '#nav2',
filter: 'main_tab2',
// navArr:对象数组,每个对象包含dataType、title、method属性
navArr: [
{eventName: 'closethis', title: '关闭当前', icon: 'layui-icon-close'},
{eventName: 'closeall', title: '关闭所有'},
{eventName: 'closeothers', title: '关闭其它'},
//自定义菜单项,此时dataType属性表示自定义事件
{title: "测试", eventName: 'test'},
{title: "测试2", eventName: 'test2'},
],
// 注册自定义事件
registMethod: {'test': testMethod, 'test2': test2Method}
})
function testMethod(id, title, currentNavGroup, dom) {
changeCurrentTabContent(currentNavGroup, "[测试]触发,触发的ID:" + id + ",标题:" + title);
}
function test2Method(id, title, currentNavGroup, dom) {
changeCurrentTabContent(currentNavGroup, "[测试2]触发,触发的ID:" + id + ",标题:" + title);
}
function changeCurrentTabContent(currentNavGroup, content) {
$(currentNavGroup + " div[class='layui-tab-item layui-show']").html(content);
}
});