jQuery手风琴子项未隐藏

jQuery手风琴子项未隐藏,jquery,accordion,Jquery,Accordion,所以我试图让我的手风琴菜单发挥作用,这样当你点击一个菜单,它打开,然后点击另一个菜单,上一个菜单应该关闭-但似乎自动打开,然后关闭菜单,当你点击它 有人能检查一下我的代码,看看我遗漏了什么吗?我尝试使用兄弟函数,但它根本不起作用,而find函数导致了上述问题 HTML 设计系列 <div class="sideContent"> <ul> <li><a href="http://www.nerosdecoshoppe.com/c

所以我试图让我的手风琴菜单发挥作用,这样当你点击一个菜单,它打开,然后点击另一个菜单,上一个菜单应该关闭-但似乎自动打开,然后关闭菜单,当你点击它

有人能检查一下我的代码,看看我遗漏了什么吗?我尝试使用兄弟函数,但它根本不起作用,而find函数导致了上述问题

HTML

设计系列

  <div class="sideContent">
    <ul>
      <li><a href="http://www.nerosdecoshoppe.com/collections/275070-assorted-designs">Assorted Designs</a></li>
      <li><a href= "http://www.nerosdecoshoppe.com/collections/202951-kiss-me-goodnight">Kiss Me Goodnight</a></li>
      <li><a href= "http://www.nerosdecoshoppe.com/collections/202954-natures-phone-call">Into the Wild</a></li>
      <li><a href= "http://www.nerosdecoshoppe.com/collections/202949-alice-n-stripes">Alice n Stripes</a></li>
      <li><a href= "http://www.nerosdecoshoppe.com/collections/202950-magical-kingdom">Magical Kingdom</a></li>
    </ul>
  </div>
</div>

<div>
  <a href="%20#" class="sideHeader">decoden cases</a>

  <div class="sideContent">
    <ul>
      <li><a href="http://www.nerosdecoshoppe.com/collections/202952-whip-cream">WhipCream</a></li>
      <li><a href="http://www.nerosdecoshoppe.com/collections/202953-rhinestone-pearls">Rhinestones/Pearls</a></li>
    </ul>
  </div>
</div>

这里有一个例子来说明它的作用

你可以这样做

$(document).ready(function () {
    $('.sideContent').hide();
    $('.sideHeader').click(function () {
        event.preventDefault();
        $('.sideContent').slideUp('fast');
        $(this).next().slideToggle('fast');

    });
});

编辑:新版本,涵盖@nevermind描述的场景

$(document).ready(function () {
    $('.sideContent').hide();
    $('.sideHeader').click(function () {
        event.preventDefault();
        var $slideContent = $(this).next();
        var slideDown =  $slideContent.is(":not(:visible)");
        $('.sideContent').slideUp('fast');

        if (slideDown)
            $slideContent.slideDown('fast');
    });
});


这会奏效的。JSFIDLE目前速度非常慢

这很好,但如果用户在同一个项目上单击两次-子菜单不能关闭…@nevermind:很公平。添加了一个答案以涵盖该场景。
$(document).ready(function () {
    $('.sideContent').hide();
    $('.sideHeader').click(function () {
        event.preventDefault();
        var $slideContent = $(this).next();
        var slideDown =  $slideContent.is(":not(:visible)");
        $('.sideContent').slideUp('fast');

        if (slideDown)
            $slideContent.slideDown('fast');
    });
});
$(document).ready(function () {
    $('.sideContent').hide();
    $('.sideHeader').click(function (event) {
        event.preventDefault();
      //  $(this).next()
    $(this).next().slideToggle('fast');
    $('#sidenav').find('a').not(this).next().slideUp('fast');   



    });
});