使用 slideToggle 进行重复 类

Use slideToggle for repetitive classes

我正在使用 jQuery 的 slideToggle 打开和关闭盒子。

代码与 类 配合使用以调用幻灯片。这很好用,但是,我想将这张幻灯片用于多个盒子。当使用两个或更多时,当点击其中一个时,它会打开所有的框,而不是一个点击它自己。

这里是 jQuery:

$(document).ready(function(){
  $(".nav-extra-box").click(function(){
    $(".haja").slideToggle(250);
  });
});

这里是 HTML:

<div class="nav-extra-box"></div>
<div class="haja">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>

<div class="nav-extra-box"></div>
<div class="haja">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>

<div class="nav-extra-box"></div>
<div class="haja">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>

你的问题是你正在使用 class 选择器,它 returns 对象的伪数组,在该数组上调用 .slideToggle() 将在 [=16] 上调用该函数=]这些项目中的每个。

相反,您想 仅查找所需 class 的下一个 div:

$(document).ready(function(){
  $(".nav-extra-box").click(function(){
    $(this).next(".haja").slideToggle(250);
  });
});

您可以使用 this 来识别单击的元素,并使用 next() 函数识别其旁边的 open/close 和 div。

$(document).ready(function(){
  $(".nav-extra-box").click(function(){
    $(this).next('.haja').slideToggle(250);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="nav-extra-box">a</div>
<div class="haja">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>

<div class="nav-extra-box">b</div>
<div class="haja">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>

<div class="nav-extra-box">c</div>
<div class="haja">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>