簡體   English   中英

設置javascript標簽

[英]Setting javascript tabs

再會。 我在 javascript 上寫標簽。 這些標簽背后的想法非常普遍,但與標准標簽略有不同。 當我點擊“+”按鈕時,所有選項卡都應該關閉,只有被點擊的選項卡應該打開。 一切正常,但我無法在第二次單擊按鈕時實現選項卡的關閉

在此處輸入圖片說明

HTML

        <div class="faq__tab">
          <div class="faq__tab__question">
            Какие вложения необходимы для того, чтобы<br>
            начать торговать на Wildberries?
            <div class="faq__tab__qeustion-btn" data-tab='0'></div>
          </div>
          <div class="faq__tab__answer">
            <span class="tab-answer">
              Какие вложения необходимы для того, чтобы<br>
              начать торговать на Wildberries?
            </span>
          </div>
        </div>

JS

const tabButtons = document.querySelectorAll('.faq__tab__qeustion-btn');
const tabAnswers = document.querySelectorAll('.faq__tab__answer');
const answer = document.querySelectorAll('tab-answer');

let tabClicked = false;

tabButtons.forEach((btn, index) => {

  btn.addEventListener('click', selectTab)

})

function selectTab() {

  tabButtons.forEach(button => {
    button.classList.remove('faq__tab__qeustion-btn--active');
  });

  tabAnswers.forEach(answer => {
    answer.classList.remove('faq__tab__answer--active');
  })

  this.classList.add('faq__tab__qeustion-btn--active');
  tabAnswers[this.getAttribute('data-tab')].classList.add('faq__tab__answer--active');

}

將選項卡的原始狀態保存在一個變量中,然后在全部關閉后在單擊的選項卡上切換與原始狀態相反的狀態。

tabButtons.forEach((btn) => {
    btn.addEventListener('click', selectTab)
});
function selectTab() {
    const tab = tabAnswers[this.dataset.tab];
    const makeThisActive = !tab.classList.contains('faq__tab__answer--active');
    tabButtons.forEach(button => {
        button.classList.remove('faq__tab__qeustion-btn--active');
    });
    tabAnswers.forEach(answer => {
        answer.classList.remove('faq__tab__answer--active');
    })
    this.classList.toggle('faq__tab__qeustion-btn--active', makeThisActive);
    tab.classList.toggle('faq__tab__answer--active', makeThisActive);
}

我也建議固定qeustion -看起來像一個錯字,和錯別字是編程錯誤的常見原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM