繁体   English   中英

如何更改此Jquery函数(切换)

[英]How can I change this Jquery function (toggle)

<head>
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
    $(this).toggleClass("active").next().slideToggle("800");
   });
});
 </script>

我正在做一个列表,里面有一些隐藏的div,我做了这个jquery函数来做到这一点。 事实是,此函数使您在单击触发器链接时将向您显示open_list之后的div。

我正在寻找另一个函数,该函数允许我执行相同的操作,但该函数可激活.open_list之后的div,但具有确定的类。

因此,它将忽略open_list之后没有该类的div。

我一直在做这件事,我找不到正确的方法去做。 有人知道吗?

所以我把脚本:

 <script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
  $(this).toggleClass("active").nextAll('.campaigns_list').slideToggle("800");
});

});

但仍然不起作用。 我需要打开div时h1完全不移动。

您可以使用由选择器过滤的nextAll() ,然后获取该列表的first()元素:

$(".trigger").click(function(){
    $(this).toggleClass("active").nextAll('.yourClass').first().slideToggle("800");
});

您可能遇到的问题是,如果执行next('.yourClass')如果下一个兄弟姐妹不是.youClass兄弟姐妹,则不会返回任何元素

大多数jQuery遍历方法( nextparent等)都带有一个可选的选择器参数:

$(this).nextAll('.someclass').first().slideToggle(800);

此代码将选择具有someclass类的元素的someclass ,并执行slideToggle动画。

这真的很简单-只是不使用next()而是nextAll()

<script type="text/javascript">
  $(document).ready(function(){
    $(".open_list").hide();
    $(".trigger").click(function(){
      $(this).toggleClass("active").nextAll('.yourClass').slideToggle("800");
    });
  });
</script>

如果只想选择一个元素,请在.nextAll()函数后附加“ .eq(0)”。

希望我能帮到你。 最好的问候,雅各布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM