JSFiddle - React, Tailwind, and code Playground
by Anisuzzaman Khan
HTML
<div class="top">
<ul>
<li class="menu-item-has-children">Click here
<ul class="sub-menu">
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li class="menu-item-has-children">Aliquam tincidunt mauris eu risus.
<ul class="sub-menu">
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</li>
</ul>
</div>
SCSS
$white:#fff;
$grey: #999;
@import url(http://fonts.googleapis.com/css?family=News+Cycle);
.top {
font: 1.1em'News Cycle', sans-serif;
padding: 1%;
background: $grey;
color:$white;
margin-bottom: 1%;
a {
text-decoration: none;
color:$white;
}
ul > li {list-style:none;}
}
.menu-item-has-children {
&:before {
content:"+ ";
color: $white;
}
}
.open {
&:before {
content:"- ";
color: $white;
}
}
.menu-item-has-children {
margin-left: 2%;
}
.sub-menu {
li {
margin-left: 2%;
}
}
JavaScript
$(".top ul li:not(:has(li.current))").find("ul").hide().end() // Hide all other ULs
.click(function (e) {
if (this == e.target) {
$(this).children('ul').slideToggle();
$(this).toggleClass('open');
}
return false;
});