抽象脚本,以便单个页面上的每个选项卡对象实际上不会相互影响



我有一组在项目中继承的脚本,但由于我不是Javascript开发人员,因此遇到了一些问题。

我需要做的是抽象这个脚本,以便单个页面上的每个选项卡对象实际上不会相互影响,并且我不必添加脚本块来让另一个选项卡工作。具体看标签,没有别的。

完全迷失了,甚至不知道从哪里开始,因为这个脚本实际上有一堆我真的不想搞砸的功能和方法。

任何正确方向的帮助或指针将不胜感激。

$(document).ready(function(){
    //Go up
    $('.footer-up-icon, .going-up').click(function() {
        $('body,html').animate({
            scrollTop:0
        }, 800, 'easeOutExpo');
        return false;
    });

    //Tabs 
    $('.tab-but-1').click(function(){
        $('.tab-but').removeClass('tab-active');
        $('.tab-but-1').addClass('tab-active');
        $('.tab-content').hide(100);
        $('.tab-content-1').show(100);  
        return false;   
    });
    $('.tab-but-2').click(function(){
        $('.tab-but').removeClass('tab-active');
        $('.tab-but-2').addClass('tab-active');
        $('.tab-content').hide(100);
        $('.tab-content-2').show(100);
        return false;       
    }); 
    $('.tab-but-3').click(function(){
        $('.tab-but').removeClass('tab-active');
        $('.tab-but-3').addClass('tab-active');
        $('.tab-content').hide(100);
        $('.tab-content-3').show(100);  
        return false;   
    }); 
    $('.tab-but-4').click(function(){
        $('.tab-but').removeClass('tab-active');
        $('.tab-but-4').addClass('tab-active');
        $('.tab-content').hide(100);
        $('.tab-content-4').show(100);
        return false;       
    }); 
    $('.tab-but-5').click(function(){
        $('.tab-but').removeClass('tab-active');
        $('.tab-but-5').addClass('tab-active');
        $('.tab-content').hide(100);
        $('.tab-content-5').show(100);  
        return false;   
    });
};

.HTML:

<!DOCTYPE HTML>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0 minimal-ui"/>
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/GRD/images/splash/splash-icon.png" />
    <link rel="apple-touch-startup-image" href="/GRD/images/splash/splash-screen.png" media="screen and (max-device-width: 320px)" />  
    <link rel="apple-touch-startup-image" href="/GRD/images/splash/splash-screen@2x.png" media="(max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)" /> 
    <link rel="apple-touch-startup-image" sizes="640x1096" href="/GRD/images/splash/splash-screen@3x.png" />
    <link rel="apple-touch-startup-image" sizes="1024x748" href="/GRD/images/splash/splash-screen-ipad-landscape" media="screen and (min-device-width : 481px) and (max-device-width : 1024px) and (orientation : landscape)" />
    <link rel="apple-touch-startup-image" sizes="768x1004" href="/GRD/images/splash/splash-screen-ipad-portrait.png" media="screen and (min-device-width : 481px) and (max-device-width : 1024px) and (orientation : portrait)" />
    <link rel="apple-touch-startup-image" sizes="1536x2008" href="/GRD/images/splash/splash-screen-ipad-portrait-retina.png"   media="(device-width: 768px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)"/>
    <link rel="apple-touch-startup-image" sizes="1496x2048" href="/GRD/images/splash/splash-screen-ipad-landscape-retina.png"   media="(device-width: 768px)    and (orientation: landscape)    and (-webkit-device-pixel-ratio: 2)"/>
    <title>Get-Er-Done Team</title>
    <link href="/GRD/styles/animate.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/colorbox.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/font-awesome.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/framework.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/owl.carousel.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/owl.theme.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/style.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/GRD/styles/swipebox.css" media="screen" rel="stylesheet" type="text/css" >
<script type="text/javascript" src="/GRD/scripts/jquery.js"></script>
<script type="text/javascript" src="/GRD/scripts/jqueryui.js"></script>
<script type="text/javascript" src="/GRD/scripts/wow.js"></script>
<script type="text/javascript" src="/GRD/scripts/owl.carousel.min.js"></script>
<script type="text/javascript" src="/GRD/scripts/jquery.swipebox.js"></script>
<script type="text/javascript" src="/GRD/scripts/colorbox.js"></script>
<script type="text/javascript" src="/GRD/scripts/snap.js"></script>
<script type="text/javascript" src="/GRD/scripts/countdown.js"></script>
<script type="text/javascript" src="/GRD/scripts/contact.js"></script>
<script type="text/javascript" src="/GRD/scripts/custom.js"></script>
<script type="text/javascript" src="/GRD/scripts/framework.js"></script>
<script type="text/javascript" src="/GRD/scripts/framework.launcher.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script></head>
<body >
    <div id="preloader">
        <div id="status">
            <p class="center-text">
                Loading the content...
                <em>Loading depends on your connection speed!</em>
            </p>
        </div>
    </div>    
    <div class="header">
    <a class="deploy-navigation going-up" href="#">
        <i class="fa fa-navicon"></i>
    </a>
    <a class="header-logo" href="#"><img src="/GRD/images/logo.png" alt="img"></a>
</div>
<div class="header-clear"></div>
<div class="page-navigation full-bottom">
    <div class="nav-clear"></div>
    <div class="nav-item">
        <a href="index.html">
            <i class="fa fa-home"></i>              
            Homepage        
            <i class="fa fa-angle-right"></i>
        </a>
    </div>
    <div class="nav-item">
        <a href="appointment">
            <i class="fa fa-calendar"></i>
            Schedule an Appointment
            <i class="fa fa-angle-down"></i>
        </a>
    </div>
    <div class = "nav-item">
<a class = "submenu-deploy" href = "#">
<i class = "fa fa-navicon"></i>
User Navigation
<i class = "fa fa-angle-down deploy-navigation-active"></i></a>
<div class = "submenu-items submenu-items-active">
<a href="/GRD/dashboard/customers"><i class="fa fa-users"></i>Customers<i class="fa fa-circle"></i></a><a href="/GRD/dashboard/projects"><i class="fa fa-wrench"></i>Projects<i class="fa fa-circle"></i></a><a href="/GRD/dashboard/invoices"><i class="fa fa-money"></i>Invoices<i class="fa fa-circle"></i></a><a href="/GRD/dashboard/users"><i class="fa fa-users"></i>Users<i class="fa fa-circle"></i></a><a href="/GRD/dashboard/company"><i class="fa fa-building-o"></i>Company Info<i class="fa fa-circle"></i></a></div></div>    <div class="nav-item">
        <a class="submenu-deploy" href="#">
            <i class="fa fa-camera"></i>
            Gallery
            <i class="fa fa-angle-down"></i>
        </a>
        <div class="submenu-items">
            <a href="gallery-thumb.html"><i class="fa fa-th-large"></i>Thumb Gallery<i class="fa fa-angle-right"></i></a>
            <a href="gallery-wide.html"><i class="fa fa-navicon"></i>Wide Gallery<i class="fa fa-angle-right"></i></a>
        </div>
    </div>
    <div class="nav-item">
        <a class="submenu-deploy" href="#">
            <i class="fa fa-picture-o"></i>
            Portfolio
            <i class="fa fa-angle-down"></i>
        </a>
        <div class="submenu-items">
            <a href="portfolio-one.html"><i class="fa fa-list"></i>One Column<i class="fa fa-angle-right"></i></a>
            <a href="portfolio-two.html"><i class="fa fa-th-large"></i>Two Columns<i class="fa fa-angle-right"></i></a>
            <a href="portfolio-three.html"><i class="fa fa-th"></i>Three Columns<i class="fa fa-angle-right"></i></a>
            <a href="portfolio-video.html"><i class="fa fa-video-camera"></i>Video Embeds<i class="fa fa-angle-right"></i></a>
        </div>
    </div>
    <div class="nav-item">
        <a href="contact.html">
            <i class="fa fa-envelope"></i>
            Contact 
            <i class="fa fa-angle-right"></i>
        </a>       
    </div>
    <div class="nav-item">
        <a href="#" class="close-navigation">
            <i class="fa fa-times"></i>
            Close   
            <i class="fa fa-angle-up"></i>
        </a>       
    </div>
</div>   
<div class="nav-clear"></div><div class="lia">Welcome Vikingblooded. <a href="/GRD/auth/logout">(Logout)</a></div>
<div class="content">
    <div class="container">
        <div class="dashcharts">
            <div id="chartPrj" class="chartImg"></div>
            <div id="chartInv" class="chartImg"></div>
            <div id="chartTasks" class="chartImg"></div>
        </div>
        <div class="toggle-2">
            <a href="#" class="deploy-toggle-2">Projects by Status<em><strong></strong></em></a>
            <div class="toggle-content">
                <div class="tabs">
                    <a href="#" class="tab-but tab-but-1 tab-active">Estimate</a><a href="#" class="tab-but tab-but-2 ">In-Progress</a><a href="#" class="tab-but tab-but-3 ">In Review</a><a href="#" class="tab-but tab-but-4 ">Complete</a>                </div>
                <div class="tab-content tab-content-1">
                          </div><div class="tab-content tab-content-2">
                          </div><div class="tab-content tab-content-4">
                          </div>            </div>
        </div>
        <div class="toggle-2">
            <a href="#" class="deploy-toggle-2">Tasks by Status<em><strong></strong></em></a>
            <div class="toggle-content">
                <div class="tabs">
                    <a href="#" class="tab-but tab-but-10 tab-active">Unassigned</a><a href="#" class="tab-but tab-but-11 ">Assigned</a><a href="#" class="tab-but tab-but-12 ">In-Progress</a><a href="#" class="tab-but tab-but-13 ">In-Review</a><a href="#" class="tab-but tab-but-14 ">Verified</a>                </div>
                <div class="tab-content tab-content-10">
                          </div><div class="tab-content tab-content-11">
                          </div><div class="tab-content tab-content-12">
                          </div><div class="tab-content tab-content-13">
                          </div><div class="tab-content tab-content-14">
                          </div>            </div>
        </div>
        <div class="toggle-2">
            <a href="#" class="deploy-toggle-2">Invoices by Status<em><strong></strong></em></a>
            <div class="toggle-content">
                <div class="tabs">
                    <a href="#" class="tab-but tab-but-15 tab-active">Design</a><a href="#" class="tab-but tab-but-16 ">Submitted</a><a href="#" class="tab-but tab-but-17 ">Paid-In-Full</a><a href="#" class="tab-but tab-but-18 ">Paid-Partial</a><a href="#" class="tab-but tab-but-19 ">Overdue</a>                </div>
                <div class="tab-content tab-content-15">
                          </div><div class="tab-content tab-content-16">
                          </div><div class="tab-content tab-content-17">
                          </div><div class="tab-content tab-content-19">
                          </div>            </div>
        </div>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
            google.load("visualization", "1", {packages: ["corechart"]});
            google.setOnLoadCallback(drawChart);
            function drawChart() {
var prjData= google.visualization.arrayToDataTable([
['Status','Count'],
['Estimate',1],
['In-Progress',1],
['In Review',1],
['Complete',2],
]);
var options = {
                                    legend: 'left',
                                    title: 'Projects by Status',
                                    is3D: true,
                                    width: 350,
                                    height: 200
                                };
var chart = new google.visualization.PieChart(document.getElementById('chartPrj'));
chart.draw(prjData, options);var invData= google.visualization.arrayToDataTable([
['Status','Count'],
['Design',2],
['Submitted',2],
['Paid-In-Full',1],
['Paid-Partial',2],
['Overdue',1],
]);
var options = {
                                    legend: 'left',
                                    title: 'Invoices by Status',
                                    is3D: true,
                                    width: 350,
                                    height: 200
                                };
var chart = new google.visualization.PieChart(document.getElementById('chartInv'));
chart.draw(invData, options);var tasksData= google.visualization.arrayToDataTable([
['Status','Count'],
['Unassigned',5],
['Assigned',4],
['In-Progress',0],
['In-Review',5],
['Verified',9],
]);
var options = {
                                    legend: 'left',
                                    title: 'Tasks by Status',
                                    is3D: true,
                                    width: 350,
                                    height: 200
                                };
var chart = new google.visualization.PieChart(document.getElementById('chartTasks'));
chart.draw(tasksData, options);            }
        </script>
    </div>
</div><div class="content">
    <div class="decoration"></div>
    <div class="footer-section">
        <p class="footer-text">
            Copyright 2014.<br>
            All rights reserved.
        </p>
        <div class="footer-icons">
            <a href="#" class="footer-facebook-icon"><i class="fa fa-facebook"></i></a>
            <a href="#" class="footer-google-icon"><i class="fa fa-google-plus"></i></a>
            <a href="#" class="footer-twitter-icon"><i class="fa fa-twitter"></i></a>
            <a href="#" class="footer-up-icon"><i class="fa fa-angle-up"></i></a>
        </div>
    </div>
</div></body>
</html>

.CSS:

  .tabs div{
    overflow:hidden!important;
}
.tabs a{
    color:#343434;
    text-transform:uppercase;
}
.tab-content{
    overflow:hidden;
    display:none;
}
.tab-content p{
    margin-bottom:0px;
}
.tab-content-1{
    display:block;
}
.tab-active{
    background-color:#bee7cf!important;
}
.actve-green{
    background-color:#67c68f!important;
}
.tab-but{
    font-size:13px;
    float:left;
    background-color:#f9f9f9;
    margin-right:2px;
    margin-bottom:2px;
    padding-left:10px;
    padding-right:10px;
    padding-top:5px;
    padding-bottom:5px;
}
.tab-content{
    background-color:#eeeeee;
    padding-left:10px;
    padding-right:10px;
    padding-top:10px;
    padding-bottom:10px;
}

除非您实际需要以不同的方式设置每个选项卡按钮的样式,否则没有理由为它们提供单独的编号类。在选项卡内容区域,相同的交易 - 如果您需要个人标识符来自动化,请使用id

我会为每个按钮添加一个data-属性,标识它相关的内容编号。您可以检索它并在要显示的内容的 ID 选择器中使用它。

// hide our tab content
$('.tab-content').hide();
// except the first in each list
$('.tabs + .tab-content').show();
$('.tab-but').click(function(){
    // remove the active class from buttons
    $('.tab-but').removeClass('tab-active');
    // other than this one
    $(this).addClass('tab-active');
    // hide tab content
    $('.tab-content').hide(100);
  
    // but reveal ours
    $('#tab-content-' + $(this).data('tabid') ).show(100);  
    return false;   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="tabs">
    <a href="#" class="tab-but tab-active" data-tabid="10">Unassigned</a>
    <a href="#" class="tab-but" data-tabid="11">Assigned</a>
    <a href="#" class="tab-but" data-tabid="12">In-Progress</a>
    <a href="#" class="tab-but" data-tabid="13">In-Review</a>
    <a href="#" class="tab-but" data-tabid="14">Verified</a>                
</div>
<div class="tab-content" id="tab-content-10">10</div>
<div class="tab-content" id="tab-content-11">11</div>
<div class="tab-content" id="tab-content-12">12</div>
<div class="tab-content" id="tab-content-13">13</div>
<div class="tab-content" id="tab-content-14">14</div>

相关内容

最新更新