Javascript 在手风琴中切换可单击的元素样式

Javascript 在手风琴中切换可单击的元素样式,javascript,jquery,html,css,accordion,Javascript,Jquery,Html,Css,Accordion,这让我头疼。对不起,如果这是男生的错误。我有一个非常直截了当的jquery手风琴,我可以通过添加一个类在每个内容的可点击标题上切换样式,但是当我点击折叠该元素本身时,该类不会运行,只有当我展开一个同级元素时。我用一个简单的颜色开关在JSFIDLE上弹出了这个 $(document).ready(function ($) { $('#showHideAccordion').find('h2').click(function () { $('.active'

这让我头疼。对不起,如果这是男生的错误。我有一个非常直截了当的jquery手风琴,我可以通过添加一个类在每个内容的可点击标题上切换样式,但是当我点击折叠该元素本身时,该类不会运行,只有当我展开一个同级元素时。我用一个简单的颜色开关在JSFIDLE上弹出了这个

   $(document).ready(function ($) {
       $('#showHideAccordion').find('h2').click(function () {
           $('.active').removeClass('active');
            //Expand or collapse this panel
           $(this).next().slideToggle('slow');
           $(this).toggleClass('active');
            //Hide the other panels
           $(".podContent").not($(this).next()).slideUp('slow').removeClass('active');
       });
    });

当您单击已激活的项时,您将使用以下行从中删除
活动的
类:
$('.active').removeClass('active')
然后再添加一行:
$(this.toggleClass('active')

对第一行进行此更改将修复它:
$('.active')。不是($(this)).removeClass('active')
通过这种方式,您可以从所有其他项目中删除活动类,然后使用后面的
toggleClass
行,从单击的项目中删除该类

您不需要在最后一行中再次删除该类,您已经处理好了(我看到您已经在这里使用了
.not()
函数,所以您的错误可能只是没有引起注意)。
$(.podContent”).not($(this.next()).slideUp('slow')

同样,不相关,但为什么要查找('h2')
,而不仅仅是
$('showHideAccordion h2')


这里有一个更新的提琴:

你的第三行代码
$('.active')。removeClass('active')破坏所有的
切换类
工作。拆下这条线,一切都会好起来的。它适合我。当我点击同一个元素时,它会展开和折叠。展开工作正常,但
h1
的蓝色仍然存在。Hi Talya,非常感谢!!现在看它是非常有意义的。非常感谢,,