FAQのページをJQuery,アコーディオンを用いて
”一つ開けると他は閉じる”方式で、クリックしたらアコーディオンが開くと共に、プラスがマイナスになる、逆に別のをクリックしたらそこが閉じ、マイナスがプラスになる、というのをしたい、のですが、
現状、他のところをクリックし、今開いていたところが閉まったあと全部がマイナスになっていきます、、
(同じものをクリックしたらプラスマイナス切り替わリます、)
html
1<div class="FAQ"> 2<dl> 3 <div class="faqL"> 4 <div class="faq_contents"><dt>質問 <i class="fas fa-plus"></i></dt> 5 <dd>答え</dd></div> 6 </div><!-- /.faqL --> 7 <div class="faqR"> 8 <div class="faq_contents"><dt>質問<i class="fas fa-plus"></i></dt> 9 <dd>答え</dd></div> 10 </div><!-- /.faqR --> 11</dl> 12</div><!-- /.FAQ --> 13<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css">
css
1.FAQ dl{ 2 display: flex; 3 justify-content: space-between; 4 max-width: 960px; 5 margin: 0 auto; 6 padding-top: 50px; 7 font-family: 'Montserrat', sans-serif; 8} 9.faq_contents{ 10 border: 1px solid #253b52; 11 background-color: #fff; 12 margin-bottom: 20px; 13 padding: 5px; 14} 15.FAQ dt{ 16 font-size: 20px; 17 padding: 5px 10px; 18 font-weight: bold; 19 cursor: pointer; 20} 21.FAQ i{ 22 float: right; 23 vertical-align: middle; 24 line-height: 30px; 25 color: #71A4D9; 26} 27.FAQ dd{ 28 font-size: 18px; 29 margin: 0 20px 20px; 30 text-align: justify; 31} 32.faqL{ 33 width: 50%; 34 margin-right: 50px; 35} 36.faqR{ 37 width: 50%; 38}
jquery
1const dt=$('.FAQ dt'); 2 const dd=$('.FAQ dd'); 3 4 dd.hide(); 5 6 dt.on('click',function(){ 7 $(this).next().slideToggle(); 8 dd.not($(this).next()).slideUp(); 9 10 $(this).children("i").toggleClass('fas fa-plus fas fa-minus'); 11 dt.not($(this)).removeClass('fas fa-plus fas fa-minus'); 12 13 14 15 });
回答1件
あなたの回答
tips
プレビュー