美文网首页
jQuery实现tab切换

jQuery实现tab切换

作者: 学的会的前端 | 来源:发表于2019-07-24 16:37 被阅读0次

    jQuery实现tab切换

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>jquery的tab切换</title>
        <style>
            .mod-tab {
                border: 1px solid #ccc;
                margin-top: 50px;
            }
            .mod-tab * {
                box-sizing: border-box;
            }
            .mod-tab ul, .mod-tab li {
                margin: 0;
                padding: 0;
                list-style: none;
            }
            .mod-tab .tabs:after {
                content: '';
                height: 0;
                display: table;
                clear: both;
            }
            .mod-tab .tabs li{
                float: left;
                width: 33.3%;
                height: 30px;
                line-height: 30px;
                text-align: center;
                border-right: 1px solid #ccc;
                border-bottom: 1px solid #ccc;
                cursor: pointer;
            }
            .mod-tab .tabs li:last-child{
                border-right: none;
            }
            .mod-tab .tabs .active {
                background: #eee;
            }
            .mod-tab .panel {
                display: none;
                height: 180px;
                padding: 20px;
            }
            .mod-tab .active {
                display: block;
            }
        </style>
    </head>
    <body>
        <div class = "mod-tab">
            <ul class = "tabs">
                <li class = "active">tab1</li>
                <li>tab2</li>
                <li>tab3</li>
            </ul>
            <div class = "panel active">内容1</div>
            <div class = "panel">内容2</div>
            <div class = "panel">内容3</div>
        </div>
        <div class = "mod-tab">
            <ul class = "tabs">
                <li class = "active">tab1</li>
                <li>tab2</li>
                <li>tab3</li>
             </ul>
            <div class = "panel active">内容1</div>
            <div class = "panel">内容2</div>
            <div class = "panel">内容3</div>
        </div>
            <div class = "mod-tab">
                <ul class = "tabs">
                    <li class = "active">tab1</li>
                    <li>tab2</li>
                    <li>tab3</li>
                </ul>
                <div class = "panel active">内容1</div>
                <div class = "panel">内容2</div>
                <div class = "panel">内容3</div>
        </div>
    
        <script src = "http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
        <script>
            
            $('.tabs>li').on('click',function(){
                //防止函数的重复调用
                var $this = $(this)
                //获取当前点击元素的下表,index()获取的是当前元素在兄弟元素排行中的顺序
                var index = $this.index()
                //使触发点击事件的元素添加active,其兄弟元素移除active
                $this.addClass('active').siblings().removeClass('active')
                //li对应的div的内容展示出来,同时div的兄弟元素不展示内容,移除active
                /*一个tab时的代码
                $('.panel').eq(index).addClass('active').siblings().removeClass('active')
                */
                $this.parents('.mod-tab')
                     .find('.panel')
                     .eq(index).addClass('active').siblings().removeClass('active')
                
            })
    
            /*
          当存在很多tab的时候,以上代码只能保证第一个tab的效果是实现的,而下面的没有效果。
          原因在于$('.panel')选中的是9个div,而index是每个tab的div,所以点击下面的tab,展现的内容还是第一个的。
          */
    
    
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:jQuery实现tab切换

          本文链接:https://www.haomeiwen.com/subject/chffrctx.html