🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1402閲覧

アコーディオンメニューのアイコンが上手く動作しない

ayuayuayu

総合スコア68

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/01/13 02:42

編集2021/01/13 05:33

アコーディオンメニューのアイコンをプラス、マイナス、にしています。
そして一つ開いたら他のメニューは閉じるようにしてあります。
一つ開いたら他のメニューは閉じるようになるのはできいるのですが、その時アイコンが
閉じてもマイナスのままになてしまっています。
どこが間違っていますか?教えてください。。

<ul class="menu"> <li class="menu__item"> <a class="menu__item__link js-menu__item__link" href="#">メールBOX</a> <ul class="submenu"> <li class="submenu__item"> <a href="">送信メール</a> </li> <li class="submenu__item"> <a href="">受信メール</a> </li> </ul> </li> </ul> <script> $(function(){ $('.js-menu__item__link').each(function(){ $(this).on('click',function(){ $(this).toggleClass('on'); $("+.submenu",this).slideToggle(); return false; //一つ開いたら後は閉じる $('.js-menu__item__link').not($(this)).siblings('.submenu').slideUp(); }); }); }); </script>

ここからcssです

.menu { width:100%; padding-left:0px; margin-top:3px; } .menu__item { background:#009FFF; color: #fff; cursor: pointer; display: block; margin-bottom: 3px; } .menu__item a{ text-decoration: none; } .menu__item li{ list-style:none; } .menu__item__link { color:#000; display: block; line-height: 60px; padding: 0 1rem; position: relative; } .menu__item__link:after { background:#009FFF; content: '\f067'; font-weight: 900; display: block; font-family: "Font Awesome 5 Free"; line-height: 60px; position: absolute; right: 0; text-align: center; top: 0; width: 60px; } .menu__item__link.on:after { content: '\f068'; } .submenu { background: #fff; display: none; } .submenu__item { border-bottom: 1px solid #009FFF; color:#000; padding: 1rem; }

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

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

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

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

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

m.ts10806

2021/01/13 04:39

HTMLが半端な状態、 CSSが提示されていない ということもあり、他者に指摘できることはありません。 質問を編集し、第三者がコピペで再現できる情報を提示してください。
ayuayuayu

2021/01/13 05:34

cssも載せました。宜しくお願いします。
Lhankor_Mhy

2021/01/13 05:58

実際には、.menu__item が複数ある、ということでいいんですよね?
guest

回答1

0

ベストアンサー

こんにちは。

こう変更してはいかがでしょうか。
ただ、returnの前に書かないと動かないと思いますが……

js

1// $('.js-menu__item__link').not($(this)).siblings('.submenu').slideUp(); 2 $('.js-menu__item__link').not($(this)).removeClass('on').siblings('.submenu').slideUp();

投稿2021/01/13 06:05

Lhankor_Mhy

総合スコア36946

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

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

ayuayuayu

2021/01/13 06:16

ありがとうございます。 すぐにできました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問