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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

Q&A

解決済

2回答

703閲覧

複数リストのあるアーディオンの作り方

pr_777

総合スコア20

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

0グッド

0クリップ

投稿2020/01/21 08:35

お世話になっております。

タイトル通りです。開閉時にメニューが複数表示されるアコーディオンメニューを作成しているのですが、
思うように動作しません。
以下、コードです。

html

1<div id="js-modal" class="modal-section"> 2 <input class="search" type="text" placeholder="検索"> 3 <nav id="js-slider" class="modal_list"> 4 <ul> 5 <li><a href="#">コーポレットメッセージ</a></li> 6 <ul> 7 <li class="modal_list_slider"><a href="#">テキスト</a></li> 8 </ul> 9 <li><a href="#">企業情報</a></li> 10 <ul> 11 <li class="modal_list_slider"><a href="#">テキスト</a></li> 12 <li class="modal_list_slider"><a href="#">テキスト</a></li> 13 <li class="modal_list_slider"><a href="#">テキスト</a></li> 14 </ul> 15 <li><a href="#">事業紹介</a></li> 16 <ul> 17 <li class="modal_list_slider"><a href="#">テキスト</a></li> 18 <li class="modal_list_slider"><a href="#">テキスト</a></li> 19 <li class="modal_list_slider"><a href="#">テキスト</a></li> 20 </ul> 21 <li><a href="#">ニュース</a></li> 22 <ul> 23 <li class="modal_list_slider"><a href="#">テキスト</a></li> 24 <li class="modal_list_slider"><a href="#">テキスト</a></li> 25 <li class="modal_list_slider"><a href="#">テキスト</a></li> 26 <li class="modal_list_slider"><a href="#">テキスト</a></li> 27 </ul> 28 <li><a href="#">サステナビリティ</a></li> 29 <ul> 30 <li class="modal_list_slider"><a href="#">テキスト</a></li> 31 <li class="modal_list_slider"><a href="#">テキスト</a></li> 32 <li class="modal_list_slider"><a href="#">テキスト</a></li> 33 </ul> 34 <li><a href="#">投資家情報</a></li> 35 <ul> 36 <li class="modal_list_slider"><a href="#">テキスト</a></li> 37 <li class="modal_list_slider"><a href="#">テキスト</a></li> 38 </ul> 39 <li><a href="#">採用情報</a></li> 40 <ul> 41 <li class="modal_list_slider"><a href="#">テキスト</a></li> 42 <li class="modal_list_slider"><a href="#">テキスト</a></li> 43 </ul> 44 </ul> 45 </nav> 46 <!-- <li class="modal_lang"> 47 <li>日本語</li> 48 <li>英語</li> 49 </li> --> 50 </div>

js

1 $('#js_slider li').on('click',function(){ 2 $(this).next('ul').slideToggle(); 3 });

理想の動き
例)"企業情報"の個所で3つリストが開閉される。

実際の動き:
"コーポレートメッセージ"、"企業情報"などの個所を押しても全く反応がない。

以下のサイトを参考にしてコードを書きました。
https://lmn-blog.com/jquery_accordion01/#JS
(4のデモのページ)

$('#js_slider li')のidのところをクラス名に変更することも試みましたが、
無駄でした。
開閉時のリストが複数でなく、一つだけのものとかでしたら簡単に作成することができるのですが、
どなたかアドバイスをお教えいただけますでしょうか。

まだまだどがつく素人なので温かい目で見ていただけると幸いです。

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

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

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

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

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

guest

回答2

0

navについているidが「js-slider」(ハイフン)なのに
jsでは「#js_slider」(アンダーバー)になっています

投稿2020/01/21 08:46

yambejp

総合スコア114839

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

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

pr_777

2020/01/21 08:51

ご回答ありがとうございます。 表記変更しましたが、いまだ動きません。
yambejp

2020/01/21 08:56

navのidを「js_slider」に変えたということでしょうか? まさかとは思いますが、ちゃんとjQueryは読んでいますよね?
pr_777

2020/01/21 09:23

そうです。 はい、読み込んでおります。 リストの開閉だけが作動していない状況です。 それ以外は動作済みです。
pr_777

2020/01/22 09:16

原因を突き止めました。 おそらくCSSに問題が合ったからだと思います。 お教えいただいたのにスミマセン!
guest

0

ベストアンサー

HTMLの文法上、ul直下にulを置く事はできないので、構造を変えてみてください。

<ul>: 順序なしリスト要素 - HTML: HyperText Markup Language | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/ul

許可されている内容 0個以上の <li> または <script><template> 要素。 <li> 要素の子孫としてさらに <ol> 要素や <ul> 要素を配置することも可能。

投稿2020/01/21 10:04

kei344

総合スコア69407

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

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

pr_777

2020/01/22 09:16

原因を突き止めました。 おそらくCSSに問題が合ったからだと思います。 お教えいただいたのにスミマセン!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問