2 回答

TA貢獻1807條經驗 獲得超9個贊
您正在嘗試將事件偵聽器添加到節點集合(querySelectorAll for.nav-link與querySelectorfor .nav-toggle)。您可以迭代集合并將click事件偵聽器添加到每個項目,或者僅偵聽 s 的父元素.nav-link:
const navToggle = document.querySelector('.nav-toggle')
// replace this with something more sensible
const navLinkParent = document.querySelector('.nav-link').parentElement;
navToggle.addEventListener('click', () => {
document.body.classList.toggle('nav-open')
})
// this is adding a click listener to ONE element
navLinkParent.addEventListener('click', (event) => {
// check if the clicked element matches what you're after
if (event.target.classList.contains('nav-link')) {
document.body.classList.remove('nav-open')
}
})

TA貢獻1893條經驗 獲得超10個贊
您必須使用循環,因為querySelectorAll返回一個數組。
const navToggle = document.querySelector('.nav-toggle')
const navLink = document.querySelectorAll('.nav-link')
navToggle.addEventListener('click', () => {
document.body.classList.toggle('nav-open')
})
for (var i = 0; i < navLink.length; ++i) {
navLink[i].addEventListener('click', () => {
if(navToggle.classList.contains('nav-toggle')){
(navToggle.classList.remove('nav-toggle');
}
});
}
- 2 回答
- 0 關注
- 146 瀏覽
添加回答
舉報