I am trying to add or remove an active class if I click any list item but the code is not working. Here is my function
const list = document.querySelectorAll('.m-list') as NodeListOf<Element>
function activeLink(this: any) {
list.forEach((item) => item.classList.remove('active'))
// list.forEach((item) => item.classList.add('active'))
this.classList.add('active')
}
list.forEach(item => item.addEventListener('click', activeLink))
Full code with HTML
export default function MobileNavigation() {
const list = document.querySelectorAll('.m-list') as NodeListOf<Element>
function activeLink(this: any) {
list.forEach((item) => item.classList.remove('active'))
// list.forEach((item) => item.classList.add('active'))
this.classList.add('active')
}
list.forEach(item => item.addEventListener('click', activeLink))
return <div className='mobile-navigation'>
<ul>
<li className='m-list active'>
<a href="#">
<span className='m-icon'><i className="fa-solid fa-house"></i></span>
<span className='m-text'>Home</span>
</a>
</li>
<li className='m-list'>
<a href="#">
<span className='m-icon'><i className="fa-solid fa-shop"></i></span>
<span className='m-text'>Shop</span></a>
</li>
<li className='m-list'>
<a href="#"><span className='m-icon'><i className="fa-solid fa-store"></i></span>
<span className='m-text'>Vendors</span></a>
</li>
<li className='m-list'>
<a href="#"><span className='m-icon'><i className="fa-solid fa-address-card"></i></span>
<span className='m-text'>About us</span></a>
</li>
<li className='m-list'>
<a href="#"><span className='m-icon'><i className="fa-solid fa-headset"></i></span>
<span className='m-text'>Contact Us</span></a>
</li>
<div className="indicator"></div>
</ul>
</div>;
}
const list = document.querySelectorAll('.m-list') as NodeListOf<Element>
function activeLink(e:any) {
list.forEach((item) => item.classList.remove('active'))
// list.forEach((item) => item.classList.add('active'))
e.classList.add('active')
}
list.forEach(item => item.addEventListener('click', (e)=>activeLink(item)))
Just replace this with your code ... it will start working now . I hope this helped you solve your issue :)