当手风琴菜单未激活时,尝试仅显示标题

时间:2017-01-07 17:50:51

标签: javascript jquery accordion toggleclass

我已经解决了这个问题好几天了,我知道这是一个简单的修复,但我无法得到它!

现在,显示我网站的标题,但是一旦点击了一个手风琴项目,标题就会被隐藏,但我试图让它在没有任何手风琴项目处于活动状态时再次显示标题。

这是我到目前为止的代码:

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
  acc[i].onclick = function() {
    $('.heading').hide(); 
    var active = document.querySelector(".accordion.active");
    if (active && active != this) {
      active.classList.remove("active");
      active.nextElementSibling.classList.remove("show");
    } 
    this.classList.toggle("active");
    this.nextElementSibling.classList.toggle("show");
  } 

};

我只需要在没有任何活动时显示标题!谢谢!

2 个答案:

答案 0 :(得分:0)

我认为accodion一次打开一个标签。这意味着当您单击一个活动的时,它会关闭所有设置。如果这是真的,我们可以简单地检查点击活动元素的时间,并在那种情况下显示&#34;标题&#34;

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
  acc[i].onclick = function() {
    $('.heading').hide(); 
    var active = document.querySelector(".accordion.active");
if (active && active == this) {
      $('.heading').show(); 
    }     
if (active && active != this) {
      active.classList.remove("active");
      active.nextElementSibling.classList.remove("show");
    } 
    this.classList.toggle("active");
    this.nextElementSibling.classList.toggle("show");
  } 

};

答案 1 :(得分:0)

我建议您声明一个var count全局变量。每当您激活一个部分时,count增加1,即count++,并且每次停用时都会count--

现在,如果count <= 0在任何时候 - 再次显示标题。