我的函數計算螢幕上可見的卡片數量,如果全部顯示,則將arrow-up
類別新增到我的圖示中,如果某些卡片仍然對使用者隱藏,則 arrow添加-down
圖示。
const showMoreIcon = document.querySelector('.cta-icon'); function myFunction(){ const btnIcon = cardsOnShow >= cards.length ? 'arrow-up' : 'arrow-down'; showMoreIcon.classList.add(btnIcon); }
<span class="medium-icon"></span>
這有效,但是我可以在DOM 中看到正確的類別被添加到span
中,因為我期望它,因為添加了arrow-down
類別首先(在在顯示所有可見卡片之前,使用者必須多次展開內容) - 然後,儘管添加了arrow-up
類,但它不會覆蓋arrow-down
。 p>
如何確保新增 arrow-up
時,arrow-down
被刪除,反之亦然?我之前曾使用 toggle
來實現簡單的開啟/關閉圖標,但這不起作用,因為它在關閉之前可能會展開多次。
P粉5790084122023-09-11 14:59:10
我建議刪除您不再需要的課程:
function myFunction(){ if (cardsOnShow >= cards.length) { showMoreIcon.classList.add('arrow-up') showMoreIcon.classList.remove('arrow-down') } else { showMoreIcon.classList.remove('arrow-up') showMoreIcon.classList.add('arrow-down') } }
P粉3950561962023-09-11 12:38:15
級聯考慮了許多因素 a>,這是一組規則,用於確定當兩個衝突的規則應用於同一元素時哪個規則「獲勝」。
在 HTML 元素上定義類別的順序不是這些因素之一。