【やりたいこと】
特定の要素をクリックするたびにクラスを追加・削除を切り替えた上で、そのクラスが存在しているかを判別したい
【行ったこと】
以下の挙動を想定して、下記のコードを書きました。
トリガーとなる個別複数の要素をクリックするたびに「active」というクラスをそれぞれ追加・削除を交互に行い、合わせて「active」のクラスが1つでもページ内に存在するかどうかを判別して、ターゲットとなる要素をCSSで表示非表示を制御する
//HTML(抜粋) <span id="trigger−01">トリガー1</span> <span id="trigger−02">トリガー2</span> <div id="target">ターゲット</div> //js $("#trigger−01").on('click',function(){ $(this).toggleClass('active'); if($('.active').length){ //「active」クラスがある時 $('#target').css('display','block'); } else { //「active」クラスがない時 $('#target').css('display','none'); } }); $("#trigger−02").on('click',function(){ $(this).toggleClass('active'); if($('.active').length){ $('#target').css('display','block'); } else { $('#target').css('display','none'); } });
【結果】
最初にどちらかの要素をクリックした時は「active」クラスの判別でターゲットの要素が表示されるのですが、以降クリックした時に「active」がないのにも関わらずターゲットの要素が表示されたままになってしまう。
HTML上では「active」クラスの追加・削除は問題なく行われており、条件分岐のところをデバッグをすると必ず「active」クラスが存在するときの挙動になる。
====
以上、詳しい方ご教授いただけますと幸いです。
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー