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

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

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

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

jQuery

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

Q&A

解決済

2回答

11811閲覧

jQueryにて別タブから特定のタブ内のアンカーポイントまでリンクさせる方法を教えて下さい。

cotton88

総合スコア87

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2015/12/18 15:09

編集2015/12/19 07:15

こんばんは

いつも大変勉強させて頂いています。。
今回もjQueryのナビゲーション関連で躓いてしまい助けを求めにきました。。

まずページ上部に普通のタブナビゲーションを設置しました。(このくらいは問題ありません)
ですが、ページ下部にある「その他タブのアイテム2種」のアイテムをクリック後、
タブを切り替えてから指定のアイテムIDのところまでページ内リンク(アンカー?)する方法がどうしても分かりません。

※頑張って図解にしてみたので、そちらを参照していただけると幸いです。

参考サイトとして
別ページから特定のタブにダイレクトリンクする方法
jQuery タブ内にあるアンカーポイントへのダイレクトリンクの仕方を教えてください。
などを参考にしてみたのですがなかなかうまくいかず。。

いつも説明が下手でご迷惑をお掛けしてしまってますが不明な点があれば教えてください。
よろしくお願いいたします!!

参考イメージ

以下コード

html

1<nav class="navigation"> 2 <ul> 3 <li class="cate_01"><a href="#c01">#c01</a></li> 4 <li class="cate_02"><a href="#c02">#c02</a></li> 5 <li class="cate_03"><a href="#c03">#c03</a></li> 6 <li class="cate_04"><a href="#c04">#c04</a></li> 7 <li class="cate_05"><a href="#c05">#c05</a></li> 8 <li class="cate_06"><a href="#c06">#c06</a></li> 9 </ul><ul> 10 <li class="cate_07"><a href="#c07">#07</a></li> 11 <li class="cate_08"><a href="#c08">#08</a></li> 12 <li class="cate_09"><a href="#c09">#09</a></li> 13 <li class="cate_10"><a href="#c10">#10</a></li> 14 <li class="cate_11"><a href="#c11">#11</a></li> 15 <li class="cate_12"><a href="#c12">#12</a></li> 16 </ul><ul> 17 <li class="cate_13"><a href="#c13">#13</a></li> 18 <li class="cate_14"><a href="#c14">#14</a></li> 19 <li class="cate_15"><a href="#c15">#15</a></li> 20 <li class="cate_16"><a href="#c16">#16</a></li> 21 <li class="cate_17"><a href="#c17">#17</a></li> 22 <li class="cate_18"><a href="#c18">#18</a></li> 23 </ul> 24</nav> 25 26<div id="c01" class="cateBody"> 27<h1>コンテンツ(#c01)タイトル</h1> 28<ul> 29 <li> 30 <div id="c01-i1" class="itemWrap"> 31 <img><p>テキスト</p> 32 </div><!-- #c01-i1 .itemWrap --> 33 </li> 34 <li> 35 <div id="c01-i2" class="itemWrap"> 36 <img><p>テキスト</p> 37 </div><!-- #c01-i2 .itemWrap --> 38 </li> 39 <li> 40 <div id="c01-i3" class="itemWrap"> 41 <img><p>テキスト</p> 42 </div><!-- #c01-i3 .itemWrap --> 43 </li> 44</ul> 45<h2>その他タブのアイテム2種</h2> 46<ul> 47 <li> 48 <a href="/#c04-i18"><img><p>テキスト</p></a> 49 </li> 50 <li> 51 <a href="/#c17-i50"><img><p>テキスト</p></a> 52 </li> 53</ul> 54</div><!-- #c01 .cateBody --> 55 56<div id="c02" class="cateBody"> 57<h1>コンテンツ(#c02)タイトル</h1> 58<ul> 59 <li> 60 <div id="c02-i4" class="itemWrap"> 61 <img><p>テキスト</p> 62 </div><!-- #c02-i4 .itemWrap --> 63 </li> 64 <li> 65 <div id="c02-i5" class="itemWrap"> 66 <img><p>テキスト</p> 67 </div><!-- #c02-i5 .itemWrap --> 68 </li> 69 <li> 70 <div id="c02-i6" class="itemWrap"> 71 <img><p>テキスト</p> 72 </div><!-- #c02-i6 .itemWrap --> 73 </li> 74</ul> 75<h2>その他タブのアイテム2種</h2> 76<ul> 77 <li> 78 <a href="/#c01-i1"><img><p>テキスト</p></a> 79 </li> 80 <li> 81 <a href="/#c14-i36"><img><p>テキスト</p></a> 82 </li> 83</ul> 84</div><!-- #c02 .cateBody --> 85```※(#c02までしか用意はしていません) 86 87```javascript 88//グローバルメニュータブ切り替え 89 $(".navigation li a").on("click", function() { 90 $("main .cateBody").hide(); 91 $($(this).attr("href")).fadeToggle(); 92 $(this).toggleClass("active"); 93 });

※参考までに
■アイテムIDの付与ルール
・「c01」=カテゴリIDの連番
・「i1」=アイテムIDの連番
上記2つのそれぞれ独立した連番がハイフンで繋がっている状態です。
(例「c01-i1」は◯だが、「c02-i1」は×)
順番も変わる可能性があるので[i++]で自動的に増えていく形ではなく、ID決め打ちでダイレクトリンクしたいと思っています。

※追記「別ページ」ではなく、「別タブ」です。失礼いたしました。

※追記
独自データ属性の[data-foo={$foo}]で試みたのですがこちらも出来ませんでした。。
(書き方が悪いだけかもしれませんが。)

html

1<h2>その他タブのアイテム2種</h2> 2<ul> 3 <li> 4 <a href="/#c02" data-foo="#c02-i4"><img><p>テキスト</p></a> 5 </li> 6 <li> 7 <a href="/#c02" data-foo="#c06-i21"><img><p>テキスト</p></a> 8 </li> 9</ul>

javascript

1 $(".navigation li a , .combinationPattern li a").on("click", function() { 2 $("main .cateBody").hide(); 3 $($(this).attr("href")).fadeToggle(); 4 $(this).toggleClass("active"); 5 // window.location = "/#c02-i4"; 6 7 var dataAttr = $(this).attr("data-foo"); 8 if( typeof dataAttr ) { 9 window.location = $(this).data(foo); 10 } 11 }); 12 });

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

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

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

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

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

guest

回答2

0

ベストアンサー

sekitaka_1214さんのご回答で上手くいくと思うんですが。

別解として

html

1<a href="#c04-i18"><img><p>テキスト</p></a>

href属性を少し変えて、

javascript

1$('.otherLink li a').on('click',function(e){ 2 var target = e.currentTarget.hash.split('-')[0]; 3 $(target).show(); 4 $("main .cateBody:not("+target+")").hide(); 5 return true; 6});

とかでも上手くいきませんかね。アンカー移動にshowが間に合わないかな?


#####サンプル追加
https://jsfiddle.net/joLr09on/

投稿2015/12/19 07:28

編集2015/12/19 09:28
Lhankor_Mhy

総合スコア36134

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

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

cotton88

2015/12/19 07:53

クリックしても何も反応が返ってきません。。
cotton88

2015/12/19 07:54

ちなみにjQueryのバージョンはjquery-2.1.4.min.jsなのですが関係ないですよね。念の為にお伝えしました。
anaprestoo

2015/12/19 08:42

otherLinkのつけ忘れなどはないでしょうか?
Lhankor_Mhy

2015/12/19 08:49

あー、間違えてました。訂正します。
cotton88

2015/12/21 06:11

ありがとうございます!無事に解決しました! タブが変わった後に下記のコードを付け加えてアイテムにアンカー移動できるようにしました。 var itemTarget = $(this).attr("href"); window.location = itemTarget; return true; ベストアンサーに選ばせていただきました。 また機会があればよろしくお願いいたします!
guest

0

別ページとありますが、内容を見ると同じページ内の別タブという理解でよいでしょうか。
タブの切替まで、うまくいっているのであれば、以下のように移動できませんか?

JavaScript

1 window.location.href = '#to7' ;

html

1<li id="to7"> 2 行きたいところ 3</li>

投稿2015/12/19 00:56

sekitaka_1214

総合スコア509

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

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

cotton88

2015/12/19 03:01

仰るとおり「別ページ」ではなく、「別タブ」です。失礼いたしました。 ページ上部のタブでは切り替えられます。ただページ下部のリンクから特定のタブにダイレクトリンクする方法 がわかりません。なのでご回答いただいて申し訳ないのですがこちらではうまくできません。
sekitaka_1214

2015/12/19 04:50

タブ切り替え後に、 ```JavaScript window.location.href = '#いきたいところ' ; ``` を実行してもダメですか?
cotton88

2015/12/19 07:08 編集

```html <h2>その他タブのアイテム2種</h2> <ul class="otherLink"> <li> <a href="/#c01-i1"><img><p>テキスト</p></a> </li> <li> <a href="/#c14-i36"><img><p>テキスト</p></a> </li> </ul> ``` として、 ```javascritp $(".navigation li a , .otherLink li a").on("click", function() { $("main .cateBody").hide(); $($(this).attr("href")).fadeToggle(); $(this).toggleClass("active"); window.location = "/#c14-i36"; }); ``` としてみたのですが出来ませんでした。。
Lhankor_Mhy

2015/12/19 07:27

"/#c14-i36"の/がいらないと思いますよ。
cotton88

2015/12/19 07:45

Lhankor_Mhy様 ご回答ありがとうございます。 ご指摘の通りやってみたのですが、 <div id="c01" class="cateBody">も <div id="c02" class="cateBody">にも style="display: none;" が付いてしまってコンテンツが空になってしまいました。 押下するhrefは<a href="#c14-i36"><img><p>テキスト</p></a>となっております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問