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

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

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

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

Q&A

解決済

2回答

3960閲覧

JSにてとある要素クリック後に別の(親要素)要素のクラスを削除する方法

cutter

総合スコア140

JavaScript

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

0グッド

0クリップ

投稿2016/03/29 08:00

http://tcd-wp.net/tcd028/
上記テーマをとあるスマホサイトに導入したのですが、メニューボタンを押し、メニュー項目のどれかをタップしたあとに、特定箇所まで(#でアンカーを指定して)スクロールするようにしたのですが、メニューが開きっぱなし担ってしまいます。

クリック後にメニューが閉じるようにするにはどうしたらよいのでしょうか。

http://qiita.com/NobuyaIshikawa/items/300739f6da6a95e58306
このあたりを試してみたのですが、JSが苦手で上手く出来ず…

おそらく div.navbar-collapse collapse in となっている要素のinを削除すれば非表示になるのかとおもうのですが…

宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

javascript

1#jqueryが使える場合 2$('.menu-item').on('click', function(){ 3 $('.navbar-collapse').removeClass('in') 4}) 5 6#jqueryが使えない場合 7var navBar = document.querySelector('.navbar-collapse') 8document.querySelector('.menu-item').addEventListener('click', function(){ 9 navBar.classList.remove('in') 10})

ではいかがでしょうか!
クリックのイベント用のclass(上の場合.menu-item)はお好きなように設定されて下さい!

投稿2016/03/29 08:14

MasakazuFukami

総合スコア1869

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

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

cutter

2016/03/29 08:19

ありがとうございます! どうもinが消え無さそうですm(__)m menu-itemがaタグではなくliタグだからでしょうか?
MasakazuFukami

2016/03/29 08:21

menu-itemがliでもaタグでも動くはずなんですが、、、 javascriptの書き方にもよるのですが >特定箇所まで(#でアンカーを指定して)スクロールするようにしたのですが、メニューが開きっぱなし担ってしまいます。 この処理と被ってそうですねー
cutter

2016/03/29 09:01

スクロールする部分は、単純にaタグのアンカー指定を、JSのスルスルとスクロールするものでスクロールしているだけですので、特別なオリジナルのJSなどは入れていないのですが、ワードプレスなので他と干渉はありそうですね。。
MasakazuFukami

2016/03/29 09:33

いえ、例えば、 <li class="menu-item"> <a>aa</a> </li> とある場合に、投稿者様が書いてるjavascriptが aタグを押した場合に、「リンクはさせないし、親要素への伝播も止める」という記述をされている場合(stopPropagtation, preventDefaultなど)、 aタグを押してもそこでイベントの伝播は終了しli.menu-itemに設定しているclickイベントが発生しないという事が起きます。 ちなみにそのするするとスクロールするコードを貼っていただけないでしょうか
guest

0

ベストアンサー

メニューのaタグのところに、

HTML

1<a href="~~" onclick="document.querySelectorAll('.navbar-toggle')[0].click()"> 2```と入れると自動で閉まります。 3 4提供していただいたサイトをchromeのデベロッパーツールでやりましたので、ほかのブラウザは分かりません。

投稿2016/03/29 08:14

shi_ue

総合スコア4437

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

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

cutter

2016/03/29 08:57

ありがとうございます。 ワードプレスのカスタムメニューの改変が結構たいへんそうなのですが、試してみますm(__)m
cutter

2016/03/29 09:32

add_filter('walker_nav_menu_start_el', 'description_in_nav_menu', 10, 4); function description_in_nav_menu($item_output, $item){ return preg_replace('/<a(.*?)\">/', '<a'.'$1' . "\" onclick=\"document.querySelectorAll('.navbar-toggle')[0].click()\">", $item_output); } 上記をWPのfunctions.phpに追記して出来ました。 ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問