叠加简单的jquery 2 lvl手风琴

时间:2016-07-13 11:00:52

标签: jquery menu accordion

我有一个简单的accorion菜单

$('.br_filticon li').click(function() {
  var obj = $(this);
  var itemIndex = obj.index();

  obj
  .addClass('current').siblings("li").removeClass('current')
  .parents('ul.br_filticon').find('div.br_filtdescr').slideUp(100)
  .eq(itemIndex).slideDown(100);

  return false;
});

如果所有部分都有子部分,但是如果至少有一个部分没有子部分,则菜单工作正常 - 问题。

Example

请帮忙解决。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

问题是因为您要按索引关联li元素和.br_filtdescr元素。任何li都没有索引随后偏移的子元素。

要解决此问题,请使用DOM遍历仅查找所点击的.br_filtdescr中的li元素并隐藏所有其他元素,如下所示:

$('.br_filticon li').click(function(e) {
    e.preventDefault();
    $('div.br_filtdescr').slideUp(100)
    $(this).addClass('current').siblings("li").removeClass('current').end()
        .find('div.br_filtdescr').slideDown(100);
});

Updated fiddle