【发布时间】:2014-10-21 20:56:52
【问题描述】:
我正在使用 toggleClass 创建一个下拉菜单,该菜单在单击父菜单项时向下和向上滑动。它适用于向下滑动菜单,但是当我再次单击父菜单项时,下拉菜单不会向上滑动。
jQuery:
$(document).on('click', '#navpanel .mainnav a[href^="/#"]', function(e) {
if ($(this).parent('li').hasClass('expanded')) {
$(this).siblings('ul').css('display', 'block').slideDown('linear', function() {
$(this).parent('li').toggleClass('expanded');
});
} else {
$(this).siblings('ul').css('display', 'none').slideUp('linear', function() {
$(this).parent('li').toggleClass('expanded');
});
}
var objHeight = 0;
$.each($('ul.tier1').children(), function() {
objHeight += $(this).height();
});
$('ul.tier1').height(objHeight);
});
HTML:
<div class="mainnav">
<ul class="tier1">
<li id="blog">blog</li>
<li class="">
<a class="tier1title" href="/collections/newarrivals">New Arrivals</a>
</li>
<li class="">
<a class="tier1title" href="/#">Categories</a>
<ul class="tier2">
<li class="">
<a href="/collections/knits">Knits</a>
</li>
<li class="">
<a href="/collections/tops">Tops</a>
</li>
<li class="">
<a href="/collections/dresses">Dresses</a>
</li>
<li class="">
<a href="/collections/bottoms">Bottoms</a>
</li>
. . .
<li class="">
<a class="tier1title" href="/collections/sale">Sale</a>
</li>
<li class="registerform">
...
</li>
</ul>
</li>
</ul>
</div>
【问题讨论】:
标签: javascript jquery html css drop-down-menu