質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

929閲覧

gtタブのデフォルトの表示設定

namihana

総合スコア23

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/08/11 11:01

編集2020/08/12 11:41

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がひらかれてしまうということです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/08/11 13:01

content_areaがなんだかわかりません
namihana

2020/08/11 16:14

本文に追記いたしました!
m.ts10806

2020/08/11 23:12

CSSも提示願います。
namihana

2020/08/12 11:41

cssも含めたgithubのリンクを追記いたしました。ご確認くださいませ。
guest

回答1

0

javascript

1<script> 2$(function() { 3 $('.tablinks').on('click',function() { 4 var index = $('.tablinks').index(this); 5 $('.tablinks').removeClass('select'); 6 $(this).addClass('select') 7 $('.content_area').hide().eq(index).show(); 8 }).filter('.select').trigger('click'); 9}); 10</script> 11<style> 12.select{color:red} 13</style> 14<div class="tab tab_area"> 15<button class="tablinks select">タブ1</button> 16<button class="tablinks">タブ2</button> 17<button class="tablinks">タブ3</button> 18<button class="tablinks">タブ4</button> 19<button class="tablinks">タブ5</button> 20</div> 21<div> 22<div class="content_area">content1</div> 23<div class="content_area">content2</div> 24<div class="content_area">content3</div> 25<div class="content_area">content4</div> 26<div class="content_area">content5</div> 27</div>

投稿2020/08/12 02:08

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namihana

2020/08/12 11:43

$('.content_area').hide().eq(index).show(); }).filter('.select').trigger('click'); の箇所をこちらのコードに追記してみたのですがうまく動作しませんでした。 githubのURLを追記いたしましたので、もしよろしければ実際のコード上でみていただけないでしょうか。。 まだまだ初心者なので理解ができていないところが多くすみませんが、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問