JavaScript-选项卡中的选项卡

JavaScript-选项卡中的选项卡,javascript,tabs,Javascript,Tabs,我在使用JavaScript时遇到了一些困难,特别是在选项卡中有选项卡。我目前有3个主选项卡,每个主选项卡内都有3个子选项卡。问题是,当我从一个子选项卡切换到另一个子选项卡,然后从一个子选项卡切换到另一个主选项卡时,所有其他子选项卡都将关闭,直到我手动打开它们为止 例如,我加载页面时,默认情况下打开主选项卡1-子选项卡1。我从主选项卡1-子选项卡1切换到主选项卡1-子选项卡2,它可以完美地加载,但是如果我从主选项卡1切换到主选项卡2,则所有主选项卡2子选项卡都将关闭,直到我手动打开它们为止 下面

我在使用JavaScript时遇到了一些困难,特别是在选项卡中有选项卡。我目前有3个主选项卡,每个主选项卡内都有3个子选项卡。问题是,当我从一个子选项卡切换到另一个子选项卡,然后从一个子选项卡切换到另一个主选项卡时,所有其他子选项卡都将关闭,直到我手动打开它们为止

例如,我加载页面时,默认情况下打开主选项卡1-子选项卡1。我从主选项卡1-子选项卡1切换到主选项卡1-子选项卡2,它可以完美地加载,但是如果我从主选项卡1切换到主选项卡2,则所有主选项卡2子选项卡都将关闭,直到我手动打开它们为止

下面您将看到HTML、CSS和JS以及代码片段

HTML

JS


边栏标题
边栏内容
                  本地和主要模板内容 升级模板内容 下班后模板内容 GEMS模板内容 聊天模板内容
                              本地办公室邮件内容 主要客户邮件内容 快速列表邮件内容 经销商邮寄内容 EDC邮件内容 第三方邮件内容
                                      假期内容 带薪休假内容 病假内容 移位交换内容
                                      我修改了您的代码,使其在调用
                                      openTemplate()
                                      时传递选项卡名称,并且只重置与该选项卡关联的子选项卡。现在,一个选项卡内的任何交互都不会对其他选项卡产生任何影响

                                      我只修改了HTMLJavascript,没有修改CSS


                                      文件夹
                                      功能openMenu(evt,菜单){
                                      //声明所有变量
                                      变量i、主要内容、主要链接;
                                      //使用class=“mainContent”获取所有元素并隐藏它们
                                      mainContent=document.getElementsByClassName(“mainContent”);
                                      对于(i=0;i
                                      html,
                                      身体{
                                      身高:100%;
                                      保证金:0;
                                      字体系列:Arial;
                                      颜色:#ffffff;
                                      }
                                      a:主动,
                                      答:林克,
                                      a:悬停,
                                      a:参观了{
                                      文字装饰:无;
                                      颜色:#ffffff;
                                      }
                                      .包装纸{
                                      显示:网格;
                                      网格模板柱:1fr 5fr;
                                      身高:100%;
                                      背景:线性梯度(150度、282533 15%、506367 70%、58675e 95%)
                                      }
                                      .侧边栏{
                                      显示:网格;
                                      网格模板行:0fr自动;
                                      保证金:5px;
                                      填充物:5px;
                                      边框:2个实心#ffffff;
                                      }
                                      .侧边栏标题,
                                      .侧边栏内容{
                                      利润率:10px;
                                      填充:10px;
                                      边框:2个实心#ffffff;
                                      }
                                      梅因先生{
                                      显示:网格;
                                      网格模板行:0fr自动;
                                      保证金:5px;
                                      填充物:5px;
                                      边框:2个实心#ffffff;
                                      }
                                      .main标题{
                                      利润率:10px;
                                      填充:10px;
                                      边框:2个实心#ffffff;
                                      文本对齐:右对齐;
                                      }
                                      .主要内容{
                                      显示:无;
                                      /*
                                      利润率:10px;
                                      填充:10px;
                                      边框:2个实心#ffffff;
                                      */
                                      文本对齐:右对齐;
                                      }
                                      .mainContent.active{
                                      显示:块;
                                      }
                                      .mainHeaderNav>ul{
                                      显示:内联;
                                      填充:0;
                                      保证金:0;
                                      列表样式类型:无;
                                      }
                                      .mainLinks.active{
                                      边框底部:2个实心#00a2ff;
                                      }
                                      .mainLinks:悬停{
                                      边框底部:2个实心#00a2ff;
                                      }
                                      .模板容器{
                                      显示:网格;
                                      网格模板行:0fr自动;
                                      身高:100%;
                                      }
                                      templateHeaderNav先生{
                                      利润率:10px;
                                      填充:10px;
                                      边框:2个实心#ffffff;
                                      }
                                      .templateHeaderNav>ul{
                                      显示:内联;
                                      填充:0;
                                      保证金:
                                      
                                      <!DOCTYPE html>
                                      <html lang="en" dir="ltr">
                                        <head>
                                          <meta charset="utf-8">
                                          <link rel="stylesheet" href="styles.css">
                                          <title></title>
                                        </head>
                                        <body>
                                          <div class="wrapper">
                                            <div class="sidebar">
                                              <div class="sidebarHeader">
                                                Sidebar Header
                                              </div>
                                              <div class="sidebarContent">
                                                Sidebar Content
                                              </div>
                                            </div>
                                            <div class="main">
                                              <div class="mainHeader">
                                                <nav class="mainHeaderNav">
                                                  <ul><a class="mainLinks active" onclick="openMenu(event, 'template')" href="#">Template</a></a></ul>
                                                  <ul><a class="mainLinks" onclick="openMenu(event, 'mails')" href="#">Mails</a></ul>
                                                  <ul><a class="mainLinks" onclick="openMenu(event, 'ptos')" href="#">PTOs</a></ul>
                                                </nav>
                                              </div>
                                              <div class="mainContent active" id="template">
                                                <div class="templateContainer">
                                                  <div class="templateHeader">
                                                    <nav class="templateHeaderNav">
                                                      <ul><a class="templateLinks active" onclick="openTemplate(event, 'localmajor')" href="#">Local & Major</a></a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'escalation')" href="#">Escalation</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'afterhours')" href="#">After Hours</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'gems')" href="#">GEMS</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'chat')" href="#">Chat</a></ul>
                                                    </nav>
                                                  </div>
                                                  <div class="templateContent active" id="localmajor">
                                                    Local & Major Template Content
                                                  </div>
                                                  <div class="templateContent" id="escalation">
                                                    Escalation Template Content
                                                  </div>
                                                  <div class="templateContent" id="afterhours">
                                                    After Hours Template Content
                                                  </div>
                                                  <div class="templateContent" id="gems">
                                                    GEMS Template Content
                                                  </div>
                                                  <div class="templateContent" id="chat">
                                                    Chat Template Content
                                                  </div>
                                                </div>
                                              </div>
                                              <div class="mainContent" id="mails">
                                                <div class="templateContainer">
                                                  <div class="templateHeader">
                                                    <nav class="templateHeaderNav">
                                                      <ul><a class="templateLinks active" onclick="openTemplate(event, 'localoffice')" href="#">Local Office</a></a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'majoraccount')" href="#">Major Account</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'quicklist')" href="#">Quick List</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'resellers')" href="#">Resellers</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'edc')" href="#">EDC</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, '3rdparty')" href="#">3rd Party</a></ul>
                                                    </nav>
                                                  </div>
                                                  <div class="templateContent active" id="localoffice">
                                                    Local Office Mails Content
                                                  </div>
                                                  <div class="templateContent" id="majoraccount">
                                                    Major Account Mails Content
                                                  </div>
                                                  <div class="templateContent" id="quicklist">
                                                    Quick List Mails Content
                                                  </div>
                                                  <div class="templateContent" id="resellers">
                                                    Resellers Mails Content
                                                  </div>
                                                  <div class="templateContent" id="edc">
                                                    EDC Mails Content
                                                  </div>
                                                  <div class="templateContent" id="3rdparty">
                                                    3rd Party Mails Content
                                                  </div>
                                                </div>
                                              </div>
                                              <div class="mainContent" id="ptos">
                                                <div class="templateContainer">
                                                  <div class="templateHeader">
                                                    <nav class="templateHeaderNav">
                                                      <ul><a class="templateLinks active" onclick="openTemplate(event, 'vacation')" href="#">Vacation</a></a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'paidleave')" href="#">Paid Leave</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'sickleave')" href="#">Sick Leave</a></ul>
                                                      <ul><a class="templateLinks" onclick="openTemplate(event, 'shiftswap')" href="#">Shift Swap</a></ul>
                                                    </nav>
                                                  </div>
                                                  <div  class="templateContent active" id="vacation">
                                                    Vacation Content
                                                  </div>
                                                  <div  class="templateContent" id="paidleave">
                                                    Paid Leave Content
                                                  </div>
                                                  <div  class="templateContent" id="sickleave">
                                                    Sick Leave Content
                                                  </div>
                                                  <div  class="templateContent" id="shiftswap">
                                                    Shift Swap Content
                                                  </div>
                                                </div>
                                              </div>
                                            </div>
                                          </div>
                                        <script type='text/javascript' src='scripts.js'></script>
                                        </body>
                                      </html>
                                      
                                      html, body {
                                        height: 100%;
                                        margin: 0;
                                        font-family: Arial;
                                        color: #ffffff;
                                      }
                                      
                                      a:active, a:link, a:hover, a:visited {
                                        text-decoration: none;
                                        color: #ffffff;
                                      }
                                      
                                      .wrapper {
                                        display: grid;
                                        grid-template-columns: 1fr 5fr;
                                        height: 100%;
                                        background: linear-gradient(150deg,#282533 15%,#506367 70%,#58675e 95%)
                                      }
                                      
                                      .sidebar {
                                        display: grid;
                                        grid-template-rows: 0fr auto;
                                        margin: 5px;
                                        padding: 5px;
                                        border: 2px solid #ffffff;
                                      }
                                      
                                      .sidebarHeader, .sidebarContent {
                                        margin: 10px;
                                        padding: 10px;
                                        border: 2px solid #ffffff;
                                      }
                                      
                                      .main {
                                        display: grid;
                                        grid-template-rows: 0fr auto;
                                        margin: 5px;
                                        padding: 5px;
                                        border: 2px solid #ffffff;
                                      }
                                      
                                      .mainHeader {
                                        margin: 10px;
                                        padding: 10px;
                                        border: 2px solid #ffffff;
                                        text-align: right;
                                      }
                                      
                                      .mainContent {
                                        display: none;
                                        /*
                                        margin: 10px;
                                        padding: 10px;
                                        border: 2px solid #ffffff;
                                        */
                                        text-align: right;
                                      }
                                      
                                      .mainContent.active {
                                        display: block;
                                      }
                                      
                                      .mainHeaderNav > ul {
                                        display: inline;
                                        padding: 0;
                                        margin: 0;
                                        list-style-type: none;
                                      }
                                      
                                      .mainLinks.active {
                                        border-bottom: 2px solid #00a2ff;
                                      }
                                      
                                      .mainLinks:hover {
                                        border-bottom: 2px solid #00a2ff;
                                      }
                                      
                                      .templateContainer {
                                        display: grid;
                                        grid-template-rows: 0fr auto;
                                        height: 100%;
                                      }
                                      
                                      .templateHeaderNav {
                                        margin: 10px;
                                        padding: 10px;
                                        border: 2px solid #ffffff;
                                      }
                                      
                                      .templateHeaderNav > ul {
                                        display: inline;
                                        padding: 0;
                                        margin: 0;
                                        list-style-type: none;
                                      }
                                      
                                      .templateLinks.active {
                                        border-bottom: 2px solid #00a2ff;
                                      }
                                      
                                      .templateLinks:hover {
                                        border-bottom: 2px solid #00a2ff;
                                      }
                                      
                                      .templateContent {
                                        display: none;
                                        margin: 10px;
                                        padding: 10px;
                                        border: 2px solid #ffffff;
                                      }
                                      
                                      .templateContent.active {
                                        display: block;
                                      }
                                      
                                      function openMenu(evt, menu) {
                                        // Declare all variables
                                        var i, mainContent, mainLinks;
                                      
                                        // Get all elements with class="mainContent" and hide them
                                        mainContent = document.getElementsByClassName("mainContent");
                                        for (i = 0; i < mainContent.length; i++) {
                                          mainContent[i].style.display = "none";
                                        }
                                      
                                        // Get all elements with class="mainLinks" and remove the class "active"
                                        mainLinks = document.getElementsByClassName("mainLinks");
                                        for (i = 0; i < mainLinks.length; i++) {
                                          mainLinks[i].className = mainLinks[i].className.replace(" active", "");
                                        }
                                      
                                        // Show the current tab, and add an "active" class to the button that opened the tab
                                        document.getElementById(menu).style.display = "block";
                                        evt.currentTarget.className += " active";
                                      }
                                      
                                      function openTemplate(evt, template) {
                                        // Declare all variables
                                        var i, templateContent, templateLinks;
                                      
                                        // Get all elements with class="templateContent" and hide them
                                        templateContent = document.getElementsByClassName("templateContent");
                                        for (i = 0; i < templateContent.length; i++) {
                                          templateContent[i].style.display = "none";
                                        }
                                      
                                        // Get all elements with class="templateLinks" and remove the class "active"
                                        templateLinks = document.getElementsByClassName("templateLinks");
                                        for (i = 0; i < templateLinks.length; i++) {
                                          templateLinks[i].className = templateLinks[i].className.replace(" active", "");
                                        }
                                      
                                        // Show the current tab, and add an "active" class to the button that opened the tab
                                        document.getElementById(template).style.display = "block";
                                        evt.currentTarget.className += " active";
                                      }