打开一个选项卡时如何删除其他选项卡

维金塔斯(Vikintas Raudavicius)

因此,我有这个基本的标签模块,应该在单击按钮后显示其各自的内容。我设法使其打开并在单击后显示内容。但是,其他的也保持开放状态。

我的问题是:如何做到这一点,所以当单击并打开一个选项卡时,其他选项卡会隐藏吗?

const button = document.querySelectorAll('.tabButton');

button.forEach(function(btn) {
  btn.addEventListener('click', tabClick, false);
})

function tabClick(event) {

  let currentTab = document.querySelectorAll('.active');

  currentTab.forEach(function(tab) {
    tab.className = tab.className.replace('active' , '');
    event.target.parentElement.className += ' active';
    document.getElementById(event.target.href.split('#')[1]).classList.add('on');
  })
};
<div class='tabsBox'>
  <div class='tabButtons'>
    <ul>
      <li id='test' class='active'><a class='tabButton' href='#tab1'>Button 1</a></li>
      <li ><a class='tabButton' href='#tab2'>Button 2</a></li>
      <li ><a class='tabButton' href='#tab3'>Button 3</a></li>
    </ul>
  </div>
  <div class='tabsContent'>
    <div class='tabInner' active id='tab1'>
      <h2>Title</h2> 
      <p>Lorem ipsum dolor sit</p>
    </div>
    <div class='tabInner' active id='tab2'>
      <h2>Title</h2> 
      <p>Lorem ipsum dolor sit2</p>
    </div>
    <div class='tabInner' active id='tab3'>
      <h2>Title</h2> 
      <p>Lorem ipsum dolor sit3</p>
    </div>
  </div>
</div>

似乎您正在使用CSS类.on来应用样式,因此在进行设置之前,您可以div使用.tabInner并删除.on该类来获取所有选项卡的内容document.querySelectorAll('.tabInner').forEach(el => el.classList.remove('on'));

您的问题没有包含任何样式,因此我的代码基于.on该类正在处理显示样式的假设

以下是我认为您需要的工作片段。我修改了JS代码的一部分以使其classList一致使用并交换为箭头功能() => {}

const button = document.querySelectorAll('.tabButton');

button.forEach(btn => btn.addEventListener('click', tabClick, false));

function tabClick(event) {

  const currentTab = document.querySelectorAll('.active');

  currentTab.forEach(tab => {
    tab.classList.remove('active');
    event.target.parentElement.classList.add('active');
    document.querySelectorAll('.tabInner').forEach(el => el.classList.remove('on'));
    document.getElementById(event.target.href.split('#')[1]).classList.add('on');
  })
};
.tabInner {
  display: none;
}

.tabInner.on {
  display: block;
}
<div class='tabsBox'>
  <div class='tabButtons'>
    <ul>
      <li id='test' class='active'><a class='tabButton' href='#tab1'>Button 1</a></li>
      <li><a class='tabButton' href='#tab2'>Button 2</a></li>
      <li><a class='tabButton' href='#tab3'>Button 3</a></li>
    </ul>
  </div>
  <div class='tabsContent'>
    <div class='tabInner' active id='tab1'>
      <h2>Title</h2>
      <p>Lorem ipsum dolor sit</p>
    </div>
    <div class='tabInner' active id='tab2'>
      <h2>Title</h2>
      <p>Lorem ipsum dolor sit2</p>
    </div>
    <div class='tabInner' active id='tab3'>
      <h2>Title</h2>
      <p>Lorem ipsum dolor sit3</p>
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery选项卡,从另一个选项卡保存时如何指示其他选项卡中的验证错误

来自分类Dev

在多个选项卡之间,如何使用Vimperator在当前选项卡之后立即打开一个选项卡

来自分类Dev

单击链接按钮时打开一个新选项卡

来自分类Dev

使Ctrl + t在chrome之外时打开一个新的(chrome)选项卡

来自分类Dev

使Ctrl + t在chrome之外时打开一个新的(chrome)选项卡

来自分类Dev

cmder:在已打开的选项卡的目录中打开一个新的选项卡

来自分类Dev

如何使html搜索栏打开一个新选项卡以显示结果

来自分类Dev

如何在 PowerShell 6 中打开一个新选项卡?

来自分类Dev

在同一目录中打开一个新选项卡

来自分类Dev

按下<Down>在Konsole中打开一个新选项卡

来自分类Dev

如果SQL查询成功,则打开一个新选项卡

来自分类Dev

打开一个选项卡,并在Firefox插件中对其发出POST请求

来自分类Dev

Python Gtk Notebook通过按钮打开一个新选项卡

来自分类Dev

打开一个新的浏览器选项卡

来自分类Dev

按下<Down>在Konsole中打开一个新选项卡

来自分类Dev

在屏幕上当前位置打开一个新选项卡

来自分类Dev

尝试使用带有函数的 JS 打开一个新选项卡

来自分类Dev

单击按钮打开一个新选项卡

来自分类Dev

Applescript:从显示对话框中打开一个新的 Safari 选项卡

来自分类Dev

打开一个新选项卡,但应作为保存搜索的后退按钮

来自分类Dev

16.04中的gedit:仅打开一个文件时显示带文件名的选项卡

来自分类Dev

单击事件在一个选项卡上触发,但在其他选项卡上不触发

来自分类Dev

Google表格删除行(如果一个选项卡上的列中的值与其他选项卡上的列不匹配)

来自分类Dev

打开一个JQuery选项卡中另一个JQuery选项卡中存在的文档超链接?

来自分类Dev

请协助使用以下代码默认打开一个选项卡,最好是第一个名为“概览”的选项卡

来自分类Dev

从新的html页面返回时,如何打开上一个活动选项卡

来自分类Dev

如何在Linux中从两个连续的选项卡中删除一个选项卡

来自分类Dev

OS X Mountain Lion终端选项卡名称+在同一目录中打开一个新选项卡

来自分类Dev

如何根据 URL 将活动类从默认选项卡删除到另一个选项卡?

Related 相关文章

  1. 1

    jQuery选项卡,从另一个选项卡保存时如何指示其他选项卡中的验证错误

  2. 2

    在多个选项卡之间,如何使用Vimperator在当前选项卡之后立即打开一个选项卡

  3. 3

    单击链接按钮时打开一个新选项卡

  4. 4

    使Ctrl + t在chrome之外时打开一个新的(chrome)选项卡

  5. 5

    使Ctrl + t在chrome之外时打开一个新的(chrome)选项卡

  6. 6

    cmder:在已打开的选项卡的目录中打开一个新的选项卡

  7. 7

    如何使html搜索栏打开一个新选项卡以显示结果

  8. 8

    如何在 PowerShell 6 中打开一个新选项卡?

  9. 9

    在同一目录中打开一个新选项卡

  10. 10

    按下<Down>在Konsole中打开一个新选项卡

  11. 11

    如果SQL查询成功,则打开一个新选项卡

  12. 12

    打开一个选项卡,并在Firefox插件中对其发出POST请求

  13. 13

    Python Gtk Notebook通过按钮打开一个新选项卡

  14. 14

    打开一个新的浏览器选项卡

  15. 15

    按下<Down>在Konsole中打开一个新选项卡

  16. 16

    在屏幕上当前位置打开一个新选项卡

  17. 17

    尝试使用带有函数的 JS 打开一个新选项卡

  18. 18

    单击按钮打开一个新选项卡

  19. 19

    Applescript:从显示对话框中打开一个新的 Safari 选项卡

  20. 20

    打开一个新选项卡,但应作为保存搜索的后退按钮

  21. 21

    16.04中的gedit:仅打开一个文件时显示带文件名的选项卡

  22. 22

    单击事件在一个选项卡上触发,但在其他选项卡上不触发

  23. 23

    Google表格删除行(如果一个选项卡上的列中的值与其他选项卡上的列不匹配)

  24. 24

    打开一个JQuery选项卡中另一个JQuery选项卡中存在的文档超链接?

  25. 25

    请协助使用以下代码默认打开一个选项卡,最好是第一个名为“概览”的选项卡

  26. 26

    从新的html页面返回时,如何打开上一个活动选项卡

  27. 27

    如何在Linux中从两个连续的选项卡中删除一个选项卡

  28. 28

    OS X Mountain Lion终端选项卡名称+在同一目录中打开一个新选项卡

  29. 29

    如何根据 URL 将活动类从默认选项卡删除到另一个选项卡?

热门标签

归档