javascript - 显示/隐藏带有链接的多个 Div

标签 javascript html css

我没有清楚地解释我想做什么。希望这会更好。

目前我正在使用 this Fiddle切换一些div。它充当 Accordion ,一次只显示一个 div。单击其中一个标题将显示该 div 的内容,单击另一个标题将隐藏第一个 div 并显示该 div。

我遇到的麻烦(并且想做的)是在打开一个 div 时我想隐藏对其他 div 的访问,直到第一个 div 关闭。

意思是如果我点击“Content2”来显示该内容,我想隐藏对 Content1、Content3 和 Content4 的访问,直到 Content 2 再次关闭。

function ReverseDisplay(d) {
  var els = document.querySelectorAll('.toggle.active:not(#' + d + ')');
  for (var i = 0; i < els.length; i++) {
    els[i].classList.remove('active');
  }
  document.getElementById(d).classList.toggle('active')

}
.toggle {
  display: none;
}
.toggle.active {
  display: block;
}
<a href="javascript:ReverseDisplay('content1')">
	Content1
</a>
<a href="javascript:ReverseDisplay('content2')">
	Content2
</a>
<a href="javascript:ReverseDisplay('content3')">
	Content3
</a>
<a href="javascript:ReverseDisplay('content4')">
	Content4
</a>

<div id="content1" class="toggle">
  <p>Content 1 goes here.</p>
</div>
<div id="content2" class="toggle">
  <p>Content 2 goes here.</p>
</div>
<div id="content3" class="toggle">
  <p>Content 3 goes here.</p>
</div>
<div id="content4" class="toggle">
  <p>Content 4 goes here.</p>
</div>

最佳答案

这应该有效...使用传递的 id 来识别元素并通过检查 active 是否存在来添加类。

function ReverseDisplay(d) {
  var id = d
  var el = document.getElementById(id)
  var elClassList = el.classList
  var [...active] = document.querySelectorAll('.toggle.active')
  debugger
  if (active.length === 0) {
    el.classList.add('active')
  } else if (id === active[0].id) {
    el.classList.remove('active')
  }
}
.toggle {
  display: none;
  margin-top: 40px;
}
.toggle.active {
  display: block;
}
a {
  position: fixed;
  top: 10px;
}
<a href="javascript:ReverseDisplay('uniquename')">
    Click to show/hide.
</a>
<div id="uniquename" class="toggle">
  <p>Content 1 goes here.</p>
</div>

<a href="javascript:ReverseDisplay('uniquename1')" style="left:150px">
    Click to show/hide.
</a>
<div id="uniquename1" class="toggle">
  <p>Content 2 goes here.</p>
</div>

关于javascript - 显示/隐藏带有链接的多个 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808654/

相关文章:

javascript - 单选按钮检查用户交互

javascript - jquery .addClass 使用新类设置另一个函数

c# - 如何在 asp.net 中自动刷新的站点(浏览器)标题上显示其他用户的事件计数

html - Div 未与边距居中对齐 :auto

jquery - 如果填充了文件名范围,如何将类添加到外部 div

javascript - 颜色、插入链接和插入图像弹出窗口未在 wysihtml5 中显示

javascript - 在 AmCharts 中隐藏工具提示

javascript - 图标不显示与 summernote rails

css - 萨斯 :first-child compile error

javascript - 我的 Controller 没有捕获指令发送的事件