こんばんは
いつも大変勉強させて頂いています。。
今回も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 });
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/19 07:53
2015/12/19 07:54
2015/12/19 08:42
2015/12/19 08:49
2015/12/21 06:11