JQueryでタブの操作をコントロールするコードを書いております。
デフォルトで開くタブをhtml上でselectをつけることで固定したいのですが、なぜかselectをつけていないタブがデフォルトで開かれてしまいます。
どなたかわかる方いらっしゃらないでしょうか?
なおこのコードはタブだけでなく、違うページからリンクしてきたときに特定のタブを指定できるようにしており、かつページ内ジャンプの機能もはいっております。
現状ではページを普通に開いてもタブ5が選択された状態でひらいてしまいます。
タブ1が選択された状態で開きたいとおもっているのですが、、
$(function() { //クリックしたときのファンクションをまとめて指定 $('.tab_area button').click(function() { //.index()を使いクリックされたタブが何番目かを調べ、 // indexという変数に代入します。 var index = $('.tab_area button').index(this); //コンテンツを一度すべて非表示にし、 $('.content_area').css('display','none'); //クリックされたタブと同じ順番のコンテンツを表示します。 $('.content_area').eq(index).fadeIn(); //タブについているクラスselectを消し、 $('.tab_area button').removeClass('select'); //クリックされたタブのみにクラスselectをつけます。 $(this).addClass('select') }); }); //ダイレクトリンク $(function() { var urlParam = location.search.substring(1); if(urlParam) { var param = urlParam.split('&'); var paramArray = []; for (i = 0; i < param.length; i++) { var paramItem = param[i].split('='); paramArray[paramItem[0]] = paramItem[1]; } if(paramArray.hash.length){ var tabname = paramArray.hash; }else{ var tabname = "tab1"; } } //コンテンツを一度すべて非表示にし、 $('.content_area').css('display','none'); //一度タブについているクラスselectを消し、 $('.tab_area button').removeClass('select'); var tabno = $('.tab_area button#' + tabname).index(); //クリックされたタブと同じ順番のコンテンツを表示します。 $('.content_area').eq(tabno).fadeIn(); //クリックされたタブのみにクラスselectをつけます。 $('.tab_area button').eq(tabno).addClass('select'); if(paramArray.anc.length){ var ancname = paramArray.anc, ancOffset = $('#' + ancname).offset().top; if(ancOffset){ $('html,body').animate({scrollTop: ancOffset}, 400); } } });
<div class="tab tab_area"> <button id="tab1" class="tablinks select"> タブ1 </button> <button id="tab2" class="tablinks"> タブ2 </button> <button id="tab3" class="tablinks"> タブ3 </button> <button id="tab4" class="tablinks"> タブ4 </button> <button id="tab5" class="tablinks"> タブ5 </button> </div> <!-- Tab content -->
↓こちらのtabの中身がcontent_areaになります。
追記// 8月12日
文章でうまく説明できていないようですので、Githubのリンクを貼りました。
https://github.com/nannantown/new-tab
cssのhtmlも入っておりますので、どなたかみていただけないでしょうか?
問題としてはtab2.htmlを開いたときにtab3がひらかれてしまうということです。