我为一个菜单制作了一个非常简单的手风琴。只有一件事我无法上班。
简而言之:手风琴的正常状态已经关闭。我打开其中一个手风琴并勾选一个复选框。然后页面刷新,手风琴返回到关闭状态。因此,我需要检查是否已选中任何复选框,然后默认情况下再次“重新打开”它。
所以我拥有的是:
HTML
<ul id="accordion">
<li class="active">
<ul style="display: block;">
<li class="filter-item clearfix">
<input type="checkbox" checked="checked" value="20883" name="filter[]" id="filter_20883">
<label for="filter_20883"><span></span>H0</label>
</li>
</ul>
</li>
</ul>
<ul id="accordion">
<li class="active"><a href="#"><span>Strom</span><span class="close-open"></span></a>
<ul style="display: block;">
<li class="filter-item clearfix">
<input type="checkbox" value="20887" name="filter[]" id="filter_20887">
<label for="filter_20887"><span></span>Wechselstrom</label>
</li>
<li class="filter-item clearfix">
<input type="checkbox" value="20888" name="filter[]" id="filter_20888">
<label for="filter_20888"><span></span>Gleichstrom</label>
</li>
</ul>
</li>
</ul>
JQUERY
$('#accordion > li > a').click(function() {
var checkElement = $(this).next();
$(this).closest('li').addClass('active');
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).closest('li').removeClass('active');
checkElement.slideUp('normal');
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$(this).closest('li').addClass('active');
checkElement.slideDown('normal');
}
if($(this).closest('li').find('ul').children().length == 0) {
return true;
} else {
return false;
}
});
有没有人有解决方案?或者这是错误的做法吗?