Jquery滑动切换问题<;H3>;标签

Jquery滑动切换问题<;H3>;标签,jquery,slidetoggle,Jquery,Slidetoggle,我需要以下jquery代码中的小amendment。() 如果您在演示中注意到,标题1按照我的要求完美地向上/向下滑动,但标题2和标题3则不然。区别只是我在标签(“标题二”,“标题三”)周围添加了另一个div。我知道,这一行需要做点什么$(this)。next(“p”)。slideToggle(“fast”);但我不知道如何做到这一点,因为我在Jquery中是乞丐 下面是我的代码 $(document).ready(function(){ $("p").hide(); $("h

我需要以下jquery代码中的小amendment。()

如果您在演示中注意到,标题1按照我的要求完美地向上/向下滑动,但标题2和标题3则不然。区别只是我在标签(“标题二”,“标题三”)周围添加了另一个div。我知道,这一行需要做点什么$(this)。next(“p”)。slideToggle(“fast”);但我不知道如何做到这一点,因为我在Jquery中是乞丐

下面是我的代码

$(document).ready(function(){
    $("p").hide();

    $("h3").click(function(){
        $(this).next("p").slideToggle("fast")
        $(this).toggleClass("active");
    });
    $('.mylink').click(function(){
        $(this).parent('p').prev().trigger('click');
    })
}); 

请参考

代码中的问题是在两个和三个标题上使用父div,例如:

<h3 class="some_class">Heading One</h3>
标题一
但这不是你的代码

 <div class="some_class"><h3>Heading One</h3></div>
标题一

好的,如果需要保留结构,.next()必须退出。我想不出一种不那么麻烦的方法来实现这一点,但是结合and及其父标记并查找兄弟姐妹:

$(this).parent().addBack().siblings("p").slideToggle("fast")

据我所知,它工作得很好:

虽然不完美,但这将为您提供所需的功能:

$(document).ready(function(){
    $("p").hide();

    $("h3").click(function(){
        $(this).closest('.accordion').find("p").slideToggle("fast");
        $(this).toggleClass("active");
    });
    $('.mylink').click(function(){
        $(this)
          .parent()
          .slideToggle('fast')
          .closest('.accordion')
          .find('h3')
          .toggleClass('active');
    })
}); 
主要的变化是使用
closest()
来定位父
.accordion
并将其用作
find()
您的
p
元素的参考点


编辑:codepen因为某种原因被禁用,这里有一个

你说得对,但我别无选择。我必须使用标题1。因为此代码需要合并到ASP.NET面板中。有什么建议吗?太好了,差不多完成了!但这个小问题仍然存在,因为这一段有着密切的联系。这个链接现在不起作用。你也能帮我吗?太好了,差不多完成了!但这个小问题仍然存在,因为这一段有着密切的联系。这个链接现在不起作用。你也能帮我吗?好的,我已经更新了它,在“关闭”链接上使用相同的方法谢谢你的快速回复,尼克。你能分享一下更新后的代码吗?我看不到codepen的最新版本。好的,我更新了我的答案(codepen好像坏了,所以我切换回了JSFIDLE)。嘿,尼克,我刚刚在小提琴中注意到,当我按下描述中的“Close”链接时,箭头的位置并没有从下向上改变,而当我点击标题时,箭头工作正常。你能检查一下是什么问题吗?我记得,在代码笔版本中,箭头工作正常。