Can somebody tell me where my mistake was done? It's a dropdown menu but it doesn't do the transition thing. I played around with it several hours but cant find the bug.
var allHasChildren = document.querySelectorAll(".item-has-children a");
for (var x = 0; x < allHasChildren.length; x++) {
allHasChildren[x].onclick = function() {
// get the first submenu and toggle using classes
var subMenu = this.parentNode.getElementsByClassName("sub-menu")[0];
if (subMenu.classList.contains('selected')) {
subMenu.classList.remove("selected");
} else {
subMenu.classList.add("selected");
}
}
}
.sub-menu {
display: none;
}
.sub-menu.selected {
display: block;
transition: transform 0.2s;
}
<ul>
<li class="item-has-children">
<a href="#0">December</a>
<ul class="sub-menu">
<li><a href="blogproto.html#3">Sub Item One</a></li>
<li><a href="#5">Sub Item Two</a></li>
<li><a href="#4">Sub Item Three</a></li>
<li><a href="#3">Sub Item Four</a></li>
<li><a href="#2">Sub Item Five</a></li>
<li><a href="#1">Sub Item Six</a></li>
</ul>
</li>
<li class="item-has-children">
<a href="#0">November</a>
<ul class="sub-menu">
<li><a href="#x">Sub Item One</a></li>
<li><a href="#0">Sub Item Two</a></li>
<li><a href="#0">Sub Item Three</a></li>
<li><a href="#0">Sub Item Four</a></li>
<li><a href="#0">Sub Item Five</a></li>
<li><a href="#0">Sub Item Six</a></li>
</ul>
</li>
</ul>
Where is my mistake?
Thank you