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

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

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

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

jQuery

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

Q&A

解決済

3回答

927閲覧

アコーディオンパネル JQuery

williamsArk

総合スコア46

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2019/04/15 14:18

以下のようにアコーディオンパネル?を作りたいと思っていて、+マークをクリックすると、答えが出て、-マークをクリックすると、閉じるようにしたいのですが、うまく行きませんでした。どこがおかしいのか見ていただけると幸いです。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Practice</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <h2>Q&A</h2> <div class="faq"> <ul id="faq-list"> <li class="faq-list-items"> <h3>○○○○○○○○○○○○○○○○○○○○○○○○?</h3> <span>+</span> <div class="answer"> <p>○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○です。</p> </div> </li> <li class="faq-list-items"> <h3>○○○○○○○○○○○○○○○○○○○○○○○○?</h3> <span>+</span> <div class="answer"> <p>○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○です。</p> </div> </li> <li class="faq-list-items"> <h3>○○○○○○○○○○○○○○○○○○○○○○○○?</h3> <span>+</span> <div class="answer"> <p>○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○です。</p> </div> </li> </ul> </div> <div id="top-btn">TOPに戻る</div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="js/main.js"></script> </body> </html>
$(function() { $('.option-btn').click(function() { $(this).css('color', 'red'); }); $('#top-btn').click(function() { $('html, body').scrollTop(0); }); $('.fad-list-item').click(function() { var $answer = $(this).find('.answer'); if($answer.hasClass('open')){ $answer.removeClass('open'); $answer.slideUp(); $(this).find('span').text('+'); } else { $answer.addClass('open'); $answer.slideDown(); $(this).find('span').text('-'); } }); });
body { font-family: Arial, sans-serif; font-size: 18px; } #top-btn { cursor: pointer; background: #3498db; color: #fff; width: 250px; height: 50px; text-align: center; line-height: 50px; border-radius: 10px; margin: 0 auto; margin-top: 30px; } .faq-list-items{ list-style: none; position: relative; } .answer { display: none; font-size: 12px; padding: 5px 0px; margin-bottom: 30px; } .faq-list-items > h3 { font-size: 14px; } .faq-list-items span { position: absolute; cursor: pointer; top: 0; right: 5px; color: #ccc; font-size: 13px; }

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

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

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

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

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

guest

回答3

0

「.faq-list-items」が「.fad-list-item」でタイプミスしています。
クラス名やIDを使用する時は、コピペを利用しましょう。
タイプミスが減ります。
一応下記で動作しました。
確認ブラウザはFirefoxです。

html

1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8"> 6 <title>Practice</title> 7 <!-- <link rel="stylesheet" href="css/styles.css"> --> 8 <style> 9 body { 10 font-family: Arial, sans-serif; 11 font-size: 18px; 12 } 13 14 #top-btn { 15 cursor: pointer; 16 background: #3498db; 17 color: #fff; 18 width: 250px; 19 height: 50px; 20 text-align: center; 21 line-height: 50px; 22 border-radius: 10px; 23 margin: 0 auto; 24 margin-top: 30px; 25 } 26 27 .faq-list-items { 28 list-style: none; 29 position: relative; 30 } 31 32 .answer { 33 display: none; 34 font-size: 12px; 35 padding: 5px 0px; 36 margin-bottom: 30px; 37 } 38 39 .faq-list-items>h3 { 40 font-size: 14px; 41 } 42 43 .faq-list-items span { 44 position: absolute; 45 cursor: pointer; 46 top: 0; 47 right: 5px; 48 color: #ccc; 49 font-size: 13px; 50 } 51 </style> 52</head> 53 54<body> 55 <h2>Q&A</h2> 56 <div class="faq"> 57 <ul id="faq-list"> 58 <li class="faq-list-items"> 59 <h3>○○○○○○○○○○○○○○○○○○○○○○○○?</h3> 60 <span>+</span> 61 <div class="answer"> 62 <p>○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○です。</p> 63 </div> 64 </li> 65 <!-- 省略 --> 66 </ul> 67 </div> 68 <div id="top-btn">TOPに戻る</div> 69 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 70 <script> 71 $(function () { 72 73 $('.option-btn').click(function () { 74 $(this).css('color', 'red'); 75 }); 76 77 $('#top-btn').click(function () { 78 $('html, body').scrollTop(0); 79 }); 80 81 $('.faq-list-items').click(function () { 82 var $answer = $(this).find('.answer'); 83 console.log($answer); 84 if ($answer.hasClass('open')) { 85 $answer.removeClass('open'); 86 $answer.slideUp(); 87 88 $(this).find('span').text('+'); 89 } else { 90 $answer.addClass('open'); 91 $answer.slideDown(); 92 $(this).find('span').text('-'); 93 } 94 }); 95 96 }); 97 </script> 98 99</body> 100 101</html>

投稿2019/04/16 02:10

Bernadotte

総合スコア310

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

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

williamsArk

2019/04/16 04:25

確かにコピペをした方が安全ですね。次回以降そうしたいと思います。ありがとうございました。
guest

0

ベストアンサー

.fad-list-item

↓↓↓

.faq-list-items

「s」も抜けてます

投稿2019/04/16 01:55

yambejp

総合スコア114769

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

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

williamsArk

2019/04/16 04:24

ああよかったです。こういうことをまだやってしまうんですよね。ありがとうございました。
guest

0

$('.fad-list-item').click(function()

「.faq-」じゃなくて「.fad-」になってますが。

投稿2019/04/15 14:56

aKusano

総合スコア3763

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

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

williamsArk

2019/04/15 15:25

ありがとうございました。しかし、そこを直しても変わりません。他に根本的なところが間違えてるのでしょうかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問