1

我正在将响应式标签修改为手风琴,请参阅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');
      }
});

它基本上只是根据单击的内容和当前处于活动状态的内容来应用类。我想我需要改变这个逻辑?

4

1 回答 1

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');
      }
});

检查这个小提琴

于 2013-09-11T10:32:28.140 回答