【问题标题】:How can I change this Jquery function (toggle)如何更改此 Jquery 功能(切换)
【发布时间】:2011-03-20 23:16:25
【问题描述】:
<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 完全不动。

【问题讨论】:

    标签: jquery hide toggle show html


    【解决方案1】:

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

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

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

    【讨论】:

    • .open_list.trigger 的兄弟,而不是.yourClass。这是一个有效的小提琴:jsfiddle.net/PH537/2
    【解决方案2】:

    这真的很简单 - 只是不要使用 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)”。

    希望我能帮到你。最好的问候,Jakub。

    【讨论】:

    • 嗯......你知道这不起作用。但感谢您的帮助,我会更新 wustion,以便更好地解释自己
    • 老兄,它工作得很好;)如果你认为它没有那么请解释细节:)
    • 我认为您没有正确解释。这段代码呢? jsfiddle.net/PH537/5 如果不是您想要的,请指定您想要的。谢谢
    【解决方案3】:

    大多数 jQuery 遍历方法(nextparent 等)都采用可选的选择器参数:

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

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

    【讨论】:

    • 我认为 next() 函数只能选择附近的兄弟 - 参数只是过滤器。您必须使用 nextAll() 函数来获取所有 simblings
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    相关资源
    最近更新 更多