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

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

ただいまの
回答率

88.92%

jQueryでのタブの実装について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,029

okkunn

score 14

jqueryでのタブの実装について、上の部分は色が変わるようにできたのですが、下の内容部分が変わりません。
どうしてでしょうか。
コンソールには何も表示されません。

$(function(){
$('#pickup').find('a').click(function(){
$(this).parent().addClass('current').siblings('.current').removeClass('current');
var tabTarget = $(this).attr('href');
$(tabContents).addClass('current').siblings('.current').removeClass('current');
            return false;
});
});
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=11">
<link rel="stylesheet" href="./css/main.css">
<script src="./js/vendor/jquery-1.10.2.min.js"></script>
<script src="./js/main.js"></script>
</head>
<body>
<section id="pickup">
<ul class="tabu">
<li class="current"><a href="#ninnki">aaaaa</a></li>
<li><a href="#osusume">bbbbb</a></li>
</ul>
<div class="tabContents current" id="ninnki">
<p>aaaaa</p>
<p>bbbbb</p>
<p>ccccc</p>
</div>

<div class="tabContents" id="osusume">
<p>ddddd</p>
<p>eeeee</p>
<p>fffff</p>
</div>
</section>
</body>
</html>
tabu{
margin:10px 0 0 0;
padding:0 0 0 0;
}
.tabu li{
float:left;
width:49%;
text-align:center;
background-color:#000000;
list-style-type:none;
margin:0 0.5% 0 0;
}
.tabu li.current{
background-color:#ffffff;
display:block;
}
#ninnki{
background-color:#ffffff;
padding:0 0 0 0;
margin:0 0 0 0;
clear:both;
}
#ninnki p{
padding-top:2px;
}
#osusume{
display:none;
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

#osusume{
/* display:none; 削除*/
}
/* 以下追加 */
.tabContents {
    background-color: #ffffff;
    display: none;
}
.tabContents.current {
    display: block;
}
// $(tabContents).addClass('current').siblings('.current').removeClass('current');
//    ↓
   $(tabTarget).addClass('current').siblings('.current').removeClass('current');

動くサンプル:https://jsfiddle.net/uxjhesh0/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/28 21:02

    できました!ありがとうございました!!

    キャンセル

+1

以下のように行ってはいかがでしょうか?

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=11">
    <style type="text/css">
        .tabu {
            margin: 10px 0 0 0;
            padding: 0 0 0 0;
        }

        .tabu li {
            float: left;
            width: 49%;
            text-align: center;
            background-color: #000000;
            list-style-type: none;
            margin: 0 0.5% 0 0;
            border: 1px solid black;
        }

        .tabu li.current {
            background-color: #ffffff;
            display: block;
        }

        #ninnki {
            background-color: #ffffff;
            padding: 0 0 0 0;
            margin: 0 0 0 0;
            clear: both;
        }

        #ninnki p {
            padding-top: 2px;
        }

        div.tabContents:not(.current) {
            display: none;
        }
    </style>
</head>
<body>
<section id="pickup">
    <ul class="tabu">
        <li class="current"><a href="#ninnki">aaaaa</a></li>
        <li><a href="#osusume">bbbbb</a></li>
    </ul>
    <div class="tabContents current" id="ninnki">
        <p>aaaaa</p>
        <p>bbbbb</p>
        <p>ccccc</p>
    </div>

    <div class="tabContents" id="osusume">
        <p>ddddd</p>
        <p>eeeee</p>
        <p>fffff</p>
    </div>
</section>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
    $(function () {
        $('#pickup').find('a').click(function () {
            $(this).parent().addClass('current').siblings('.current').removeClass('current');
            var tabTarget = $(this).attr('href');
            $(tabTarget).addClass('current').siblings('.current').removeClass('current');
            return false;
        });
    });
</script>
</body>
</html>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/27 23:51

    教えていただいたものでやればできましたが、できればhtmlだけではなく複数のファイルで管理したいと思っております。
    私のコードはどこがだめだったのか教えていただけないでしょうか。

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る