For efficiency I'm tracking the click event against my nav rather than each li. However, each li has a set of span tags inside them. I need to manipulate the clicked li and get it's position (index). However, my e.target is showing my span tag rather than the li. I understand why but I'm not sure who to prevent it. My html is:
<nav id="nav">
<ul>
<li><span class="num">1</span><span class="text">Contact</span></li>
...
</ul>
</nav>
and my js is basically:
const nav = document.getElementById('nav');
nav.addEventListener('click',navClick,false);
function navClick(e) {
console.log(e);
e.stopPropagation();
}
I know I can use closest('li') to see if I'm in the li but that doesn't seem to be giving me what I want when I need to grab the li index, add/remove classes, etc.