第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用javascript切換按鈕?

如何使用javascript切換按鈕?

紫衣仙女 2023-05-11 10:24:52
我有一個(gè)按鈕,當(dāng)我點(diǎn)擊它時(shí)它變?yōu)榛顒?dòng)狀態(tài),但在再次點(diǎn)擊時(shí),我想刪除活動(dòng) CSS當(dāng)我單擊該按鈕時(shí),它會(huì)通過向其添加一個(gè)活動(dòng)類而變?yōu)榛顒?dòng)狀態(tài)。這是我嘗試過的,但我嘗試的是當(dāng)我點(diǎn)擊相同的按鈕時(shí),活動(dòng) CSS 應(yīng)該被刪除,基本上想要切換const myDemo = (event) => {  const clickedElem = event.target  const allBtns = document.querySelectorAll('.btn.light')  allBtns.forEach(btn => btn.classList.remove('active'))  clickedElem.classList.add('active')}.active {  background: red;}<button onclick="myDemo(event)" class="btn light">DOG</button>
查看完整描述

4 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以使用clickedElem.classList.toggle來切換類。


在此之前,您需要?jiǎng)h除除active當(dāng)前選定按鈕之外的類名,如下所示。


const myDemo = (event) => {

  const clickedElem = event.target;

  console.log(clickedElem);

  const allBtns = document.querySelectorAll('.btn.light');

  allBtns.forEach(btn => {

    if (clickedElem != btn) {

      btn.classList.remove('active');

    }

  });

  clickedElem.classList.toggle('active');

}

.active {

  background: red;

}

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>


或者反過來,您可以存儲(chǔ)之前選擇的按鈕并使用它。


let previousClicked = null;


const myDemo = (event) => {

  const clickedElem = event.target;

  if (clickedElem === previousClicked) {

    clickedElem.classList.remove('active');

    return;

  }

  

  if (previousClicked != null) {

    previousClicked.classList.remove('active');

  }

  clickedElem.classList.add('active');

  previousClicked = clickedElem;

}

.active {

  background: red;

}

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>


查看完整回答
反對(duì) 回復(fù) 2023-05-11
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

從我在您的函數(shù)中看到的情況來看,您似乎還想active從頁面中的任何其他按鈕中刪除該類。這是我的方法:


let activeButton;


const selectButton = e => {

  if (activeButton) {

    activeButton.classList.remove('active');

  }


  if (activeButton === e.currentTarget) {

    activeButton = null;

    return;

  }


  e.currentTarget.classList.add('active');

  activeButton = e.currentTarget;

};

這樣它就不必遍歷每個(gè)按鈕來停用它們,因?yàn)樗鼤?huì)跟蹤活動(dòng)按鈕。


查看完整回答
反對(duì) 回復(fù) 2023-05-11
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以嘗試在“myDemo”函數(shù)中使用內(nèi)置切換函數(shù)。不要使用 remove(),只需添加以下行:

btn.classList.toggle("active");


查看完整回答
反對(duì) 回復(fù) 2023-05-11
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

我建議使用classList.toggle().


const myDemo = (event) => {

  const clickedElem = event.target;

  const allBtns = document.querySelectorAll('.btn.light');


  // remove the class from all buttons

  allBtns.forEach(btn => btn.classList.remove('active'));


  // reapply the class for the button that was clicked

  clickedElem.classList.toggle('active');

}

.active {

  background: red;

}

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>

<button onclick="myDemo(event)" class="btn light">DOG</button>


查看完整回答
反對(duì) 回復(fù) 2023-05-11
  • 4 回答
  • 0 關(guān)注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)