javascript - 简单的 Accordion 菜单 (jQuery)

标签 javascript jquery css menu

jQuery:

// ACCORDION
$('.accordion .answer').hide(); // hide all
$('.accordion .question').click(function(){
     $('.accordion .answer').slideUp(); // hide all open
     $(this).addClass('active').next().slideDown(); // show the anwser
     return false;
});

HTML:

<dl class="accordion">
    <dt class="question">question</dt>
    <dd class="answer">answer</dd>
    <dt class="question">question</dt>
    <dd class="answer">answer</dd>
</dl>

... 有效,但是

  • 必须从非事件问题元素中删除“事件”类 &
  • 至少有一个答案是开放的;所有答案都应该能够关闭。

谢谢!

最佳答案

好吧,想通了:

$('.accordion .answer').hide(); // hide all
$(".accordion .question").click(function () {
    $(this).toggleClass('active').next(".answer").slideToggle(300).siblings(".answer").slideUp("slow");
    $(this).siblings().removeClass('active');
});

关于javascript - 简单的 Accordion 菜单 (jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2468508/

相关文章:

javascript .setDate() 错误的日期输出

javascript - 使用javascript启用提交按钮

javascript - 防止径向渐变改变形状和大小

html - 如何确保移动布局不会太宽和放大?

html - 图像被放置在导航子菜单的顶部

html - 使用 CSS 在悬停时更改父和子 div

javascript - Twitter 框嵌入?

javascript - Angular 2 到最新版本 - jsonp 和 URLSearchParams 到 HttpClient 和 HttpParams

javascript - 滚动div,固定,再次滚动

javascript - 基于浏览器jQuery触发点击