Jquery slideUp not triggering



嘿伙计们,我正在尝试使用此HTML创建带有手风琴的视图:

<ul class="left_menu_list">
  <li class="left_menu_item active" data-item="firma">
    <div>LA FIRMA</div>
    <ul class="firma_list secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA firma_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="areas">
    <div>ÁREAS E INDUSTRIAS</div>
    <ul class="areas_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA areas_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="oficinas">
    <div>OFICINAS</div>
    <ul class="oficinas_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA oficinas_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="equipo">
    <div>EQUIPO</div>
    <ul class="equipo_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA equipo_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="compromiso">
    <div>COMPROMISO</div>
    <ul class="compromiso_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA compromiso_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="comunicacion">
    <div>COMUNICACIÓN</div>
    <ul class="comunicacion_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA comunicacion_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="empleo">
    <div>EMPLEO</div>
    <ul class="empleo_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA empleo_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
  <li class="left_menu_item" data-item="alumni">
    <div>ALUMNI</div>
    <ul class="alumni_list hidden secondary_list">
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA empleo_list</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
      <li class="secondary_list_item">LA FIRMA</li>
    </ul>
  </li>
</ul>

使用此 css:

.left_menu_list{
        .left_menu_item{
          .secondary_list{
            display: none;
            position: relative;
            background: @white;
            margin-top: 0;
            left: -4.42vw;
            width: 100%;
            top: 0;
            padding-left: 4.42vw;
            .secondary_list_item{
              margin-left: 20px;
            }
          }
}

我创建了一些JS代码,试图创建效果:

$('.left_menu_item').click(function(){
   if(false == $(this).children('ul').is(':visible')) {
        $(this).children('ul').slideUp(300);
    }
    $(this).children('ul').slideToggle();
});

主要问题是slideDown((效果完美运行,但是slideUp((效果不起作用。它使滑动向下,但是当我单击另一个项目时,slideUp 不会触发,它只是被隐藏而没有任何效果。

有谁知道为什么?谢谢。

像下面这样做(只有 3 行代码(:-

$('.left_menu_item').click(function(){
  $(this).children('ul').slideToggle();
  $('.left_menu_item').not(this).children('ul').slideUp();
});

注意:- 您显示CSS是错误的。像我在回答中所做的那样相应地更改它

您还可以在slideToggle(500)slideUp(500)中提供一些时间跨度,以使其有点令人窒息。

使用您的代码的工作示例:-

https://jsfiddle.net/b8ww8q8L

你好,使用以下代码

$(".left_menu_list > li > div").click(function(){
if(false == $(this).next().is(':visible')) {
    $('.left_menu_list ul').slideUp(300);
}
$(this).next().slideToggle(300);
});
$('.left_menu_list ul:eq(0)').show();

见下面的小提琴

小提琴演示

最新更新