вкладки javascript accordeon закрыть - PullRequest
0 голосов
/ 25 сентября 2018

привет, я использую гармошку, которую я хочу продолжать строить.Я хотел бы закрыть все открытые вкладки, если я выберу другую вкладку, чтобы была открыта только одна вкладка.Я очень новичок в javascript и пытаюсь понять это правильно.

вот мой код js:

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

for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight){
      panel.style.maxHeight = null;
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    }
  });
}

спасибо за вашу помощь

1 Ответ

0 голосов
/ 25 сентября 2018

вкладки открываются по щелчку и снова закрываются .. Я хочу закрыть открытые вкладки, когда открыта другая вкладка ... только одна вкладка должна оставаться открытой, спасибо, что я хочу, спасибо :) - Mr.Murphy

Ладно ... хотя я не знаю наверняка, что это так, но похоже:

acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight){
        panel.style.maxHeight = null;
        } else {
        panel.style.maxHeight = panel.scrollHeight + "px";
    }

});

Вы добавляете onclickк вашему аккордеону , но , тогда вы используете this, который должен закрыть ваш в настоящий момент выбранный элемент.Вместо этого вы должны создать массив и добавить к нему все открытые вкладки, а затем закрыть их при открытии новой.

Надеюсь, это поможет, Элиас =)

...