jQuery切换/幻灯片重置链接

jQuery切换/幻灯片重置链接,jquery,toggle,slidetoggle,slidedown,slideup,Jquery,Toggle,Slidetoggle,Slidedown,Slideup,我为网站上的一些文本制作了一个切换脚本。我有大约10个头部链接和两个h3链接。基本上,如果你点击一个头部链接,它会通过再次点击来打开和关闭。如果你点击h3,它们都会打开。如果已经打开了,它会保持打开状态。一个问题是,如果你全部打开它们,然后关闭并只打开一个,然后尝试关闭它们,你必须单击h3两次。这是因为当自己打开时,它会给出一个active1类,而当一起打开时,它会给出一个active1类。因此,当我第一次点击h3时,它会将active1变为active,这是为了在只有一个打开的情况下,它们都可

我为网站上的一些文本制作了一个切换脚本。我有大约10个头部链接和两个h3链接。基本上,如果你点击一个头部链接,它会通过再次点击来打开和关闭。如果你点击h3,它们都会打开。如果已经打开了,它会保持打开状态。一个问题是,如果你全部打开它们,然后关闭并只打开一个,然后尝试关闭它们,你必须单击h3两次。这是因为当自己打开时,它会给出一个active1类,而当一起打开时,它会给出一个active1类。因此,当我第一次点击h3时,它会将active1变为active,这是为了在只有一个打开的情况下,它们都可以关闭或打开,而你想将它们全部打开,然后第二次它最终关闭所有的active。希望这是有道理的

这是你的电话号码


这就是你想要的功能吗


toggleClass和slideToggle函数执行我认为您正在尝试执行的操作。

如果只需要一个类,为什么需要使用两个类?这只是告诉你哪些是开放的或没有

$("h3").click(function() {
    var $div = $(this).siblings('.head'); // cache the relative divs
    var len = $div.filter('.active').length; // get how many are active
    var $topic = $(".topics", $(this).parent()); // topics relative to element
    if (len == $div.length) { // if all are active
        $div.removeClass('active'); // remove class active
        $topic.slideUp(350); // slideup
    } else {
        $div.addClass('active'); // else add active to all
        $topic.slideDown(350) //  slide down
    }
});

$(".head").click(function() {
    var $el = $(this); // cache this
    if ($el.hasClass("active")) {
        $el.removeClass("active").next().slideUp(350);
    } else {
        $el.addClass("active").next().slideDown(350);
    };
});
请参阅更新的JSFIDLE

原始代码:

 if( $(".head").hasClass("active1") ){
    $(".head").removeClass("active1").addClass("active").next().slideDown(350);
        } else 
升级代码:

$("h3").click(function(){
    if( $(".head").hasClass("active1") ){
    $(".head").removeClass("active1").next().slideUp(350);
        } 

太棒了,非常感谢!我对jQuery非常陌生。有时候我会让事情变得更简单,但我现在还不知道该怎么做。多谢各位much@user1842315不客气,希望这就是你要找的。。如果回答了您的问题,请勾选绿色复选标记
 if( $(".head").hasClass("active1") ){
    $(".head").removeClass("active1").addClass("active").next().slideDown(350);
        } else 
$("h3").click(function(){
    if( $(".head").hasClass("active1") ){
    $(".head").removeClass("active1").next().slideUp(350);
        }