からクラスを追加または削除:私は次のようなマークアップを持っているのdiv
<div class="accordion is-open">
<h3 class="accordion-header">
HADER
<span class="accordion-indicator"></span>
</h3>
<div class="accordion-content"></div>
</div>
<div class="accordion is-open">
<h3 class="accordion-header">
HADER
<span class="accordion-indicator"></span>
</h3>
<div class="accordion-content"></div>
</div>
<div class="accordion">
<h3 class="accordion-header">
HADER
<span class="accordion-indicator"></span>
</h3>
<div class="accordion-content"></div>
</div>
私がやろうとしていますどのようなときに、クラス.accordion
でdiv
にクラス.is-opened
を追加または削除するためにjqueryのを使用することですクラス.accordion-header
私の問題は、すでにdivs
の一部にクラス.is-opened
が含まれていて、いくつかのクラスが含まれていないことです。クリックして開くことができる必要があります(クラスを追加する.is-opened)その特定のdiv
がクリックされただけです。ここで
は私のjQuery
次のとおりです。
function accordionOpener(obj) {
var accordionHeader = obj.find('.accordion-header');
var accordionBody = obj.find('.accordion');
accordionHeader.on('click',function(){
$(accordionBody).toggleClass('is-open');
});
}
new accordionOpener($(this));
私は10の賛否歳だかのように私に話すのjQuery、JavaScriptで大きなプロではありませんよ。
マークアップに関連するイベントはありません。どのようにaccordionOpenerを呼び出しますか?あなたは試してみましたか?$( '。accordion')。on( 'click'、function(){new accordionOpener($(this));}); – DinoMyte
私はこの$(accordionBody).toggleClass( 'is-open')と思った。それはすべてのアコーディオンを開くか、それをすべて閉じるようにしています – AlexB