【发布时间】:2019-08-26 20:36:57
【问题描述】:
当我单击其中一个下拉按钮时,它会激活两个下拉菜单。我正在努力做到这一点,以便当您单击其中一个下拉按钮时,它只会激活其特定的下拉菜单。我认为在 jQuery 中使用 .each() 函数可以修复它,但我很可能使用错了。谢谢大家的帮助!
这是问题的JSFiddle链接
HTML
<div class="mobile-menu">
<nav>
<ul>
<li>
<a>Item 1</a>
<div class="drop">
Click To Drop
</div>
<ul class="nav-dropdown">
<li>
<a>Sub-item</a>
</li>
<li>
<a>Sub-item</a>
</li>
<li>
<a>Sub-item</a>
</li>
<li>
<a>Sub-item</a>
</li>
<li>
<a>Sub-item</a>
</li>
</ul>
</li>
<li>
<a>Item2</a>
<div class="drop">
Click To Drop
</div>
<ul class="nav-dropdown">
<li>
<a>Sub-item</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
SCSS
.drop {
cursor: pointer;
}
.mobile-menu {
ul {
list-style-type: none;
margin: 0;
li {
padding-bottom: 25px;
position: relative;
a {
font-size: rem-calc(30px);
text-transform: uppercase;
font-weight: bold;
}
.nav-dropdown {
position: relative;
box-shadow: none;
background: none;
height: 100%;
display: none;
width: unset;
li {
float: none;
max-width: unset;
a {
font-size: rem-calc(20px);
font-weight: normal;
}
}
}
}
}
}
.nav-dropdown-active {
display: block !important;
}
jQuery
$('.drop').each(function() {
$(this).click(function() {
$('.mobile-menu .nav-dropdown').toggleClass('nav-dropdown-active');
});
});
【问题讨论】: