响应手风琴问题的标签

时间:2013-09-11 10:25:01

标签: javascript jquery

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

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

1 个答案:

答案 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