为Layui的Tab选项卡增加关闭当前、关闭其它操作

特别说明,教程已更新,请移步:此处


  • 首先管理端模板的话还是使用官方提供的,参考链接:点此打开后台布局页面

  • 以下我只列举出关键代码,各位根据实际情况拷贝到自己项目适当位置

  • 目前仅仅加入了:关闭当前、关闭所有,各位可以继续扩展,例如关闭左侧所有、关闭右侧所有、关闭其它,不是很难,循环判断即可。当然了,后面有时间我也会完善一下此功能

效果图


HTML

首先在body里面插入以下一段html:

    <ul class="rightmenu">
        <li data-type="closethis">关闭当前</li>
        <li data-type="closeall">关闭所有</li>
    </ul>
我们暂且就实现两个功能吧,其它功能自行扩展即可。相关CSS样式请看下面《CSS样式》部分

JS

/**
* 注册tab右键菜单点击事件
*/
$(".rightmenu li").click(function () {
    if ($(this).attr("data-type") == "closethis") {
        var tabid = $("li[class='layui-this']").attr('lay-id');// 获取当前激活的选项卡ID
        tabDelete(tabid);
    } else if ($(this).attr("data-type") == "closeall") {
        var tabtitle = $(".layui-tab-title li");
        var ids = new Array();
        $.each(tabtitle, function (i) {
            ids[i] = $(this).attr("lay-id");
        })
        tabDeleteAll(ids);
    }
    $('.rightmenu').hide();
})

tabDelete = function (id) {
    console.log("删除的TabID:"+id)
    element.tabDelete("你的Tab选项卡ID", id);//删除
}
tabDeleteAll = function (ids) {
    $.each(ids, function (i, item) {
        element.tabDelete("你的Tab选项卡ID", item);
    })
}

// 点击空白处关闭右键弹窗
$(document).click(function () {
    $('.rightmenu').hide();
})

/**
* 绑定右键菜单
* @constructor
*/
function CustomRightClick () {
    //屏蔽右键
    $('.layui-tab-title li').on('contextmenu', function () {
        return false;
    })
    $('.layui-tab-title,.layui-tab-title li').click(function () {
        $('.rightmenu').hide();
    });
    $('.layui-tab-title li').on('contextmenu', function (e) {
        var popupmenu = $(".rightmenu");
        l = ($(document).width() - e.clientX) < popupmenu.width() ? (e.clientX - popupmenu.width()) : e.clientX;
        t = ($(document).height() - e.clientY) < popupmenu.height() ? (e.clientY - popupmenu.height()) : e.clientY;
        popupmenu.css({left: l, top: t}).show();
        return false;
    });
}

CSS样式

<style>
    /**右键菜单*/
    .rightmenu {
        position: absolute;
        width: 110px;
        z-index: 9999;
        display: none;
        background-color: #fff;
        padding: 2px;
        color: #333;
        border: 1px solid #eee;
        border-radius: 2px;
        cursor: pointer;
    }

    .rightmenu li {
        text-align: center;
        display: block;
        height: 30px;
        line-height: 32px;
    }

    .rightmenu li:hover {
        background-color: #666;
        color: #fff;
    }
</style>

问题

  • 右击关闭暂时只能关闭当前已经激活的Tab,没法在任意一个Tab右击自动激活再去关闭,各位可优化一下

results matching ""

    No results matching ""