当前位置: 首页 > 知识库问答 >
问题:

单击时关闭选项卡

茅炯
2023-03-14

我正在尝试在我的网站上做一个标签功能,我希望有那个标签响应。所以我做了这样的代码:

null

function openCity(evt, cityName) {
    var i, tabcontent, tablinks;
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
        tabcontent[i].style.display = "none";
    }
    tablinks = document.getElementsByClassName("tablinks");
    for (i = 0; i < tablinks.length; i++) {
        tablinks[i].className = tablinks[i].className.replace(" active", "");
    }
    document.getElementById(cityName).style.display = "block";
    evt.currentTarget.className += " active";
}

// Get the element with id="defaultOpen" and click on it
document.getElementById("defaultOpen").click();
/* Style the tab */
.tab {
    overflow: hidden;
    border: 1px solid #ccc;
    background-color: #f1f1f1;
}

/* Style the buttons inside the tab */
.tab button {
    background-color: inherit;
    float: left;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 14px 16px;
    transition: 0.3s;
    font-size: 17px;
}

/* Change background color of buttons on hover */
.tab button:hover {
    background-color: #ddd;
}

/* Create an active/current tablink class */
.tab button.active {
    background-color: #ccc;
}

/* Style the tab content */
.tabcontent {
    display: none;
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-top: none;
}

/* Style the close button */
.topright {
    float: right;
    cursor: pointer;
    font-size: 28px;
}

.topright:hover {color: red;}
<div class="tab">
  <button class="tablinks" onclick="openCity(event, 'London')" id="defaultOpen">London</button>
  <button class="tablinks" onclick="openCity(event, 'Paris')">Paris</button>
  <button class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</button>
</div>

<div id="London" class="tabcontent">
  <span onclick="this.parentElement.style.display='none'" class="topright">&times</span>
  <h3>London</h3>
  <p>London is the capital city of England.</p>
</div>

<div id="Paris" class="tabcontent">
  <span onclick="this.parentElement.style.display='none'" class="topright">&times</span>
  <h3>Paris</h3>
  <p>Paris is the capital of France.</p> 
</div>

<div id="Tokyo" class="tabcontent">
  <span onclick="this.parentElement.style.display='none'" class="topright">&times</span>
  <h3>Tokyo</h3>
  <p>Tokyo is the capital of Japan.</p>
</div>

null

现在我有两样东西,

>

  • 首先,我希望在单击标题(伦敦、巴黎、东京)时关闭选项卡,然后在单击该标题时从该标题中删除活动类。

    其次,我希望有两个标签在行的响应,第三个标签在第二行,然后单击打开被点击的标签,然后向下推第三个标签。

    任何提示都会有帮助,提前谢谢

  • 共有1个答案

    百里疏珂
    2023-03-14

    给你发行号。1、你可以从“开放”改为“切换”,通过检查当前城市是否显示->然后你隐藏,否则你显示。

    null

    function toggleCity(evt, cityName) {
        var i, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tabcontent");
       
        tablinks = document.getElementsByClassName("tablinks");
        for (i = 0; i < tablinks.length; i++) {
            tablinks[i].className = tablinks[i].className.replace(" active", "");
        }
        var prev_state_display = document.getElementById(cityName).style.display;
        
        for (i = 0; i < tabcontent.length; i++) {
            tabcontent[i].style.display = "none";
        }
        
        if( prev_state_display === "none"){
            document.getElementById(cityName).style.display = "block";
            evt.currentTarget.className += " active";
        } else {
            document.getElementById(cityName).style.display = "none";
            evt.currentTarget.className.replace(" active", "");
        }
    }
    
    // Get the element with id="defaultOpen" and click on it
    document.getElementById("defaultOpen").click();
    /* Style the tab */
    .tab {
        overflow: hidden;
        border: 1px solid #ccc;
        background-color: #f1f1f1;
    }
    
    /* Style the buttons inside the tab */
    .tab button {
        background-color: inherit;
        float: left;
        border: none;
        outline: none;
        cursor: pointer;
        padding: 14px 16px;
        transition: 0.3s;
        font-size: 17px;
    }
    
    /* Change background color of buttons on hover */
    .tab button:hover {
        background-color: #ddd;
    }
    
    /* Create an active/current tablink class */
    .tab button.active {
        background-color: #ccc;
    }
    
    /* Style the tab content */
    .tabcontent {
        display: none;
        padding: 6px 12px;
        border: 1px solid #ccc;
        border-top: none;
    }
    
    /* Style the close button */
    .topright {
        float: right;
        cursor: pointer;
        font-size: 28px;
    }
    
    .topright:hover {color: red;}
    <div class="tab">
      <button class="tablinks" onclick="toggleCity(event, 'London')" id="defaultOpen">London</button>
      <button class="tablinks" onclick="toggleCity(event, 'Paris')">Paris</button>
      <button class="tablinks" onclick="toggleCity(event, 'Tokyo')">Tokyo</button>
    </div>
    
    <div id="London" class="tabcontent">
      <span onclick="toggleCity(event, 'London')" class="topright">&times</span>
      <h3>London</h3>
      <p>London is the capital city of England.</p>
    </div>
    
    <div id="Paris" class="tabcontent">
      <span onclick="toggleCity(event, 'Paris')" class="topright">&times</span>
      <h3>Paris</h3>
      <p>Paris is the capital of France.</p> 
    </div>
    
    <div id="Tokyo" class="tabcontent">
      <span onclick="toggleCity(event, 'Tokyo')" class="topright">&times</span>
      <h3>Tokyo</h3>
      <p>Tokyo is the capital of Japan.</p>
    </div>
     类似资料:
    • 我在主类中有这个类,用来在我的JTabbedPane上放置一个关闭按钮。问题是,例如,我打开了三个选项卡:journal、contact和upload,而contact选项卡是当前选择的选项卡。当我尝试关闭不是选定选项卡的日记选项卡时,关闭的是当前选定的选项卡。 这就是我调用选项卡的方法:

    • 这是点击事件。 这是xml 结果将显示在片段中,但抽屉菜单仍然显示。我该怎么做才能关闭它?任何人都给我建议,如何解决这个问题,任何帮助非常感谢。谢谢你。

    • 下面的示例有一个名为London的选项卡,其中有另一个名为Paris的选项卡。我怎么能在伦敦不结帐的情况下打开巴黎? 该示例直接来自W3SCHOOL,但经过了一些修改以适应我的用例。 null null 我相信问题是,“活跃”班从伦敦消失,因此,一旦我向巴黎施压,就会关闭。但我不擅长jQuery。 我想它可以很容易地在W3接口上测试:https://www.w3schools.com/howto/

    • 问题内容: 我在NetBeans中设计了两个JFrame。 当我单击“规则”按钮(即放在JFrame1上)时,它将打开第二个JFrame(但JFrame2在JFrame1的窗口上打开,这是我不想要的)。在第二个JFrame中,有一个“关闭”按钮。但是,当我单击此按钮时,我希望打开JFrame1并且它也能正常工作,但是JFrame2实际上没有关闭,并且JFrame1出现在JFrame2上方。 简而言

    • 在jQuery中创建选项卡。单击其他选项卡时,所有选项卡都将消失。我想不出解决办法 以下是无法正常工作的页面:http://www.sleepfullnights.com/products/sfn-537 这是另一个用它工作的人的JSFIDLE:http://jsfiddle.net/gravitybox/7pHg4/我已经复制并粘贴了其中的每个元素到页面中,问题仍然存在。 一个人指出,当点击标签

    • 我有一个组件,其中我渲染了一个组件: 我可以在函数中使用,但我还有一个嵌套组件:。在这个组件中,我呈现了一个带有一些链接的列表: 如果单击了组件中的链接,我将如何调用组件中的函数来关闭? 我可以使用反应变量触发组件的更改(如果单击了链接),并通过调用函数对组件中的更改做出反应。但我希望有更好的办法。有什么建议吗?