• Bootstrap技术: 如何给nav导航组件的tab页增加关闭按钮以及动态的添加和关闭tab页


    先给出示例html代码

    <div>
      <!-- Nav tabs -->
      <ul class="nav nav-tabs" role="tablist" id="contentnavid">
        <li role="presentation" class="active"><a href="#tab1" aria-controls="tab1" role="tab" data-toggle="tab">tab1</a></li>
        <li role="presentation"><a href="#tab2" aria-controls="tab2" role="tab" data-toggle="tab">tab2</a></li>
        <li role="presentation"><a href="#tab3" aria-controls="tab3" role="tab" data-toggle="tab">tab3</a></li>
        <li role="presentation" id="closetabli"><a href="#closetab" aria-controls="closetab" role="tab" data-toggle="tab"><span>closetab</span>
        &nbsp;<button type="button" class="close"  aria-label="Close" id="closetabbtn"><span aria-hidden="true" style="color:red">&times;</span></button>
        </a></li>
      </ul>
      
      <!-- Tab panes -->
      <div class="tab-content">
        <div role="tabpanel" class="tab-pane active" id="tab1">this is tab1</div>
        <div role="tabpanel" class="tab-pane active" id="tab2">this is tab2</div>
        <div role="tabpanel" class="tab-pane active" id="tab3">this is tab3</div>
        <div role="tabpanel" class="tab-pane active" id="closetab">this is closetab</div>
      </div>      
    </div>

    上面的html代码中,显示的导航组件有4个tab页,其中最后一个tab页的标签的右边有一个 x 的关闭按钮。

    下面我们要实现就是当点击x关闭按钮时,可以把这个带关闭按钮的tab隐藏掉,并显示最近一次显示的tab页。

    具体示例代码如下:

    <script>
        var activeTab = "tab1"; //当前的tab页。默认为第一个tab页。
        var previousTab;  //上一个打开的tab页。默认为空。
        $(function(){
            //实现事件响应函数,当tab页被显示时会触发
            $(‘a[data-toggle="tab"]‘).on(‘shown.bs.tab‘, function (e) {
                //获取当前被显示的tab页标签的aria-controls属性值
                activeTab = $(e.target).attr("aria-controls");
                //获取前一个被显示的tab页标签的aria-controls属性值
                previousTab = $(e.relatedTarget).attr("aria-controls");
            });
            
            //点击带关闭按钮tab页标签上的x后的响应事件
            $("#closetabbtn").click(function(e){
                $(this).parent().parent().css("display","none"); //隐藏tab头,调用remove方法就是删除了
                $("#closetab").css("display","none"); //隐藏tab正文信息,调用remove方法就是删除了
                if(activeTab=="closetab"){ //判断当前tab页是否是带关闭按钮的tab页,如果是,则显示上次打开的tab页
                    $(‘#contentnavid a[href="#‘+previousTab+‘"]‘).tab(‘show‘); //显示tab页
                }        
                return false; //一定要return false,阻止事件往上冒泡
            });
        });
    </script>

    上面给出了js代码。

    本文给出了最核心的处理逻辑,其中关键的地方有:

    1)增加关闭按钮,并处理click事件

    2)处理tab的show事件

    在此基础上,可以实现各种场景下的应用。

  • 相关阅读:
    servlet之中文乱码:request.getParameter()
    html页面标题增加图标方法
    前端页面设计素材网站
    修电脑大全,学会不求人
    十篇TED点击率最高演讲,带你重新认识大数据与人工智能
    除了乔布斯,科技圈还有哪些大佬值得充信仰?
    快速建设网站的框架
    前端框架资源汇总
    获取页面跳转携带参数问题
    值得关注的博客和网站
  • 原文地址:https://www.cnblogs.com/verygood568/p/5306243.html
Copyright © 2020-2023  润新知