dポイントプレゼントキャンペーン実施中!

jQuery初心者です。

http://kyasper.com/jquery-tips/
上記のURLを参考に、スマホのヘッダーメニューのページ内リンクを設定しました。

1点加えて追加したい機能があり、
ここからどんな記述を加えればいいのか、
はたまたこの考えがとんちんかんなのか…ご質問させて頂ければと思っています。

やりたいこととしては、ページ内リンクの設定で、
他のページから飛ぶ分には良いのですが、
同ページ内の場合、クリックするとスクロールはうまく行くのですが、
メニューが閉じず、コンテンツが見づらくなってしまいます。


http://kyasper.com/jquery-tips/
のサイトで解説頂いている中に、下記のような箇所があります。


// #で始まるアンカーをクリックした場合に処理
jQuery('a[href^=#]').click(function() {


この下に何か記述を加えて、
上記のことを行えるようにはできないものでしょうか。
お詳しい方、何卒お力をかして頂ければ幸いです。
よろしくお願いいたします。

A 回答 (3件)

メニューの表示のしかたがulで調整しているのであれば


jQuery('a[href^=#]').click(function() {
$(this).parents('ul').hide();
}
的な処理じゃないでしょうか?
※ulの入れ子状態によって調整が必要
    • good
    • 0

すでにある程度ウェブサイトを作成したあとで, 上記ウェブページのページ内リンクのアニメーション用スクリプトを追加したのですよね.


その前提でお答えします.

引用されているスクリプトは, CSSセレクターでページ内すべてのページ内リンクを持つ<a>要素に対してclickイベントリスナーを仕掛けるだけです.
したがって, サブメニューの展開・格納の制御には関わりありません.
別の場所にサブメニュー用スクリプトがあるはずですから, ページ内ジャンプの際にはサブメニューが展開しないように弄る必要があるかと思います.

抽象的になってしまいましたが, jsfiddleなどの匿名でソースコードを共有できるサービスを使って状況を再現すれば, より具体的な回答が得られるかと思います.
    • good
    • 0

こんにちは。



スクロールのスクリプトが原因とお考えのようですが、ご提示のスクロールのスクリプトはメニューとは直接の関係はありません。
メニューが閉じないのは、そのようにメニューが作られているからではないでしょうか。
メニューをクリックしたら必ず閉じるというふうになさりたいのなら、そのようにメニューを作っておく方が良いように思います。

>この下に何か記述を加えて、
>上記のことを行えるようにはできないものでしょうか。
お察しのように、その方法でも実現は可能と想像します。
ページ内リンクがメニューにだけ設定されている場合はまったく問題はありませんが、その他にもリンクが存在する場合は、同じ処理が実行されることになるので、その際にも問題のないようにスクリプトを記述しておく必要はありますが…
(jQueryを用いているなら、大抵の場合は問題にはならないと想像します。)


さて、肝心のスクリプトですが、質問者様がどのような仕組みのメニューを設置なさっているのか皆目見当がつかないので、
 『メニューを閉じるスクリプトを記述する』
としか言いようがありません。

ほとんど回答になっていなくて、申し訳ないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!