我正在修改手风琴的响应标签,请参阅jsfiddle
当点击当前的“活动”标签时,它隐藏了我理解的代码中的意图,但是如果不发生这种情况我不想隐藏。这是当前的javascript:
$('#nav').children('li').first().children('a').addClass('active')
.next().addClass('is-open').show();
$('#nav').on('click', 'li > a', function() {
if (!$(this).hasClass('active')) {
$('#nav .is-open').removeClass('is-open').hide();
$(this).next().toggleClass('is-open').toggle();
$('#nav').find('.active').removeClass('active');
$(this).addClass('active');
} else {
$('#nav .is-open').removeClass('is-open').hide();
$(this).removeClass('active');
}
});
它基本上只是根据点击的内容和当前活动的内容来应用类。我想我需要改变这个逻辑吗?
答案 0 :(得分:1)
如果我理解的是你想要在再次点击时停止隐藏活动div。只需删除其他部分......
$('#nav').children('li').first().children('a').addClass('active')
.next().addClass('is-open').show();
$('#nav').on('click', 'li > a', function() {
if (!$(this).hasClass('active')) {
$('#nav .is-open').removeClass('is-open').hide();
$(this).next().toggleClass('is-open').toggle();
$('#nav').find('.active').removeClass('active');
$(this).addClass('active');
}
});
选中此Fiddle