前提・実現したいこと
ワードプレスでHPを作っています。jQueryが機能しません。
発生している問題・エラーメッセージ
タブパネルを作っています。タブを押した時クラスはつくのですが、その後クラスをremoveでなくすことができません
エラーメッセージ
### 該当のソースコード <div id="main-home"> <div id="NEWS"> <div class="NEWS-title"> <h1>news</h1> </div> <div class="tab-wrap"> <div class="tab-group"> <div class="tab is-active">全て</div> <div class="tab">お知らせ</div> <div class="tab">ブログ</div> </div> </div> <div class="panel-group"> <div class="panel is-show"> <?php if(have_posts()): while(have_posts()):the_post(); ?> <div class="left-post-date"> <?php echo get_the_date(); ?> </div> <div class="left-post-item"> <p>ブログ</p> </div> <a href="<?php the_permalink(); ?>" class="left-post-title"> <?php the_title(); ?></a> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?> </div> </div> <div class="panel"> <?php $news_query = new WP_Query( array( 'post_type' => 'news', 'posts_per_page' => 3 ) ); ?> <?php if ( $news_query->have_posts() ) : ?> <?php while ( $news_query->have_posts() ) : ?> <?php $news_query->the_post(); ?> <div class="center-news-date"> <?php echo get_the_date(); ?> </div> <div class="center-news-item"> <p>お知らせ</p> </div> <a href="<?php the_permalink(); ?>" class="center-news-title"> <?php the_title(); ?></a> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?> </div> <div class="panel"> <?php $posts = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 3 ) ); if ( have_posts() ) : while ( $posts->have_posts() ) : $posts->the_post(); ?> <div class="left-news-date"> <?php echo get_the_date(); ?> </div> <div class="left-news-item"> <p>ブログ</p> </div> <a href="<?php the_permalink(); ?>" class="left-news-title"> <?php the_title(); ?></a> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?> </div> </div> </div> </div>
js
1jQuery(function($){ 2 $('.tab').on('click',function(){ 3 var idx=$('.tab').index(this); 4 $(this).addClass('is-active').siblings('.tab').removeClass('is-active'); 5 $(this).closest('.tab-group').next('.panel-group').find('.panel').removeClass('is-show'); 6 $('.panel').eq(idx).addClass('is-show'); 7 }); 8 });
css
1.tab-group{ 2 display: flex; 3 justify-content: space-between; 4 flex-wrap: wrap; 5 align-items: flex-end; 6} 7.tab{ 8 width: 130px; 9 background: #dbedf0; /* タブのカラー */ 10 border-radius: 10px 10px 0 0; 11 color: black; 12 cursor: pointer; 13 display: inline-block; 14 font-size: 16px; 15 padding: 12px 15px 12px; 16 text-align: center; 17 transition: 1s; 18 vertical-align: bottom; 19} 20.panel{ 21 display:none; 22} 23.panel.is-show{ 24 display:block; 25} 26.tab.is-active{ 27 transition: 1s; 28 opacity: 0.6; 29 padding-bottom: 20px; 30}
試したこと
$(this).closest('.tab-group').next('.panel-group').find('.panel').removeClass('is-show');このコードが機能しない。
このコードを消して、試すとそれ以外のコードは反応します
デバックの結果です。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/05 02:45