创建了简单的 Accordion ,运行良好。
发现的问题是:如果我打开一个 Accordion 选项卡,如果我单击它,那么它不应该关闭。 如果我打开另一个 Accordion ,那么之前的 Accordion 应该关闭,只有当我再次单击它时,新打开的 Accordion 才应该打开。
这是我尝试过的。 在我的实现中,可以通过同一单击打开和关闭 Accordion 选项卡。
Jquery:
$('.info').find('.accordion-toggle').click(function () {
//Expand or collapse this panel
$(this).toggleClass("open").next().slideToggle('fast');
//Hide the other panels
$(".accordion-toggle").not($(this)).removeClass("open");
$(".accordion-content").not($(this).next()).slideUp('fast');
});
最佳答案
如果单击的 Accordion 具有 class="open"
,您可以使用以下代码进行条件检查 -
if($(this).attr('class').indexOf('open')==-1)
$(this).toggleClass("open").next().slideToggle('fast');
<强> Demo
编辑 - 根据Amin的建议,我们可以使用jQuery提供的.hasClass
方法,如下所示
if(!$(this).hasClass('open'))
$(this).toggleClass("open").next().slideToggle('fast');
关于javascript - 如何保持一个 Accordion 选项卡始终打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25659580/