neutligenの日記

初心者が商用開発に挑む姿を綴ります。僕のような初心者の方に「こんな奴もいるんかー」と思って読んでもらい、コメントまで貰えたら幸いです。

レスポンシブでハンバーガーメニューになった途端にページ内リンクのアンカータグがリンクしなくなって困った時の応急処置

「レスポンシブでハンバーガーメニューになった途端にページ内リンクのアンカータグがリンクしなくなって困った時の応急処置」

目標:ハンバーガーメニューでもページ内リンクさせる

WordpressでWeb制作してたら、原因不明の事件に見舞われたので備忘。

本来なら原因も調べるべきなんだけど、今回は少し立て込んでて、後日ちゃんと調べたいと思います。

ページ内リンクってのはこれです。

<div id="destination">ホニャホニャ</div>
<!-- 上のように書いたところにリンクするには -->
<a href="#destination">ホニャホニャへのリンク</a>
<!-- という風に書くやつね -->

発生した事象は以下の通り。


  1. 画面幅がハンバーガーメニュー以上のあるブラウザでは通常通りリンクする
  2. 画面幅がハンバーガーメニュー以下のブラウザではリンクせずハンバーガーが閉じるだけ(スマホだけでなくブラウザのシミュレータでもリンクしない)
  3. ハンバーガーの外のページ内リンクは通常通り遷移する
  4. ハンバーガー内の外部サイトへの(#を使わない)外部へのリンクは通常通りリンクする
  5. ハンバーガーはbootstrapにて実装。(テーマ任せだが)

と言ったところ。 この辺りから判断する限り、リンクの記載方法は正しい。。。
何事か...!?

いろいろ調べても、合致する回答がなかったので、とりあえず通常どおりハンバーガー内のページ内リンクが動いているサイトのソースコー度とにらめっこ。
ぱっと見何も違わない。

div構成も一緒。。

「・・・・・!!!?・・・」

なんか変なIDが俺のソースコードにだけないぞ・・・

それがこれ

<div id="destination" data-q_id="#destination">ホニャホニャ</div>

data-q_id="#destination"って何やねん」とぶつくさ、言いつつ書き込んでみた。
wordpress、しかもvisualComposerはタグの書き足しめんどいのよね。。。。」
「ぶつくさぶつくさ。。。。」
「。。。。動きましたわ」

本来は原因を解明してから、記事にしたいんですが、今回は取り急ぎ。 もし、原因わかる人はコメントいただけると嬉しい、というか助かります。

以上です!

環境

WordPress: テーマはBridge(qode)編集はVisualComposer