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

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

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

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

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

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

Q&A

解決済

1回答

1190閲覧

[jQuery]アコーディオンについているアイコンの動作がおかしい

nkira

総合スコア10

HTML5

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

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

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

0グッド

0クリップ

投稿2020/06/07 08:36

実現したいこと

開閉クリックしたとき、Font Awesomeのアイコン(shevronupとshevrondown)が同じ位置で変更されるようにしたいです。

発生している問題・エラーメッセージ

リロードした時のアイコンの見た目は特に問題ないのですが、メニューを開閉させるとアイコンが二つに増えてしまいます。

thisやfindの使い方がおかしいのでしょうか。
どなたかお知恵をお貸しいただけると幸いです。
よろしくお願いいたします。。

下記ソースコードになります。

該当のソースコード

jQuery

1$(function(){ 2 $('.el_flow_index').click(function(){ 3 if($('.el_flow_desc_wrap').hasClass('open')){ 4 $('.el_flow_desc_wrap').removeClass('open'); 5 $('.el_flow_desc_wrap').slideUp(); 6 $(this).find('span').find('i').html('<i class="fas fa-chevron-down"></i>'); 7 }else{ 8 $('.el_flow_desc_wrap').addClass('open'); 9 $('.el_flow_desc_wrap').slideDown(); 10 $(this).find('span').find('i').html('<i class="fas fa-chevron-up"></i>'); 11 } 12 }); 13});

HTML

1<head> 2 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css"> 3</head> 4<body> 5 <div class="ly-flow"> 6 <div class="el-flow"> 7 <div class="el_flow_index"> 8 <p class="el_flow_title">タイトル1</p> 9 <span><i class="fas fa-chevron-down"></i></span> 10 </div> 11 <div class="el_flow_desc_wrap"> 12 <p class="el_flow_desc_head">説明文頭</p> 13 <p class="el_flow_desc_sub">説明文</p> 14 </div> 15 </div> 16 <div class="el-flow"> 17 <div class="el_flow_index"> 18 <p class="el_flow_title">タイトル2</p> 19 <span><i class="fas fa-chevron-down"></i></span> 20 </div> 21 <div class="el_flow_desc_wrap"> 22 <p class="el_flow_desc_head">説明文頭</p> 23 <p class="el_flow_desc_sub">説明文</p> 24 </div> 25 </div> 26 <div class="el-flow"> 27 <div class="el_flow_index"> 28 <p class="el_flow_title">タイトル3</p> 29 <span><i class="fas fa-chevron-down"></i></span> 30 </div> 31 <div class="el_flow_desc_wrap"> 32 <p class="el_flow_desc_head">説明文頭</p> 33 <p class="el_flow_desc_sub">説明文</p> 34 </div> 35 </div> 36 </body>

CSS

1.el-flow{ 2 display:relative; 3 margin:10px auto; 4 background-color:#fef5e0; 5 padding:10px 35px; 6 width:80%; 7 border-radius:5px; 8 } 9 10.el_flow_index{ 11 display:flex; 12 text-align:left; 13 padding:0; 14} 15 16.el_flow_title{ 17 font-size:15px; 18 line-height:35px; 19 margin:0; 20} 21 22.el_flow_desc_wrap{ 23 display:none; 24} 25 26.el_flow_desc_head, 27.el_flow_desc_sub{ 28 font-size:12px; 29} 30 31.fa-chevron-down{ 32 display:block; 33 position:absolute; 34 right:100px; 35 margin-top: 10px; 36} 37 38.el_flow_index, 39.fa-chevron-down{ 40 cursor:pointer; 41}

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

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

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

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

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

guest

回答1

0

ベストアンサー

.find('i').html('<i class="fas fa-chevron-down"></i>');の部分でiタグの中にiタグを入れているからでは。
クラスを変えるだけなら.addClass() .removeClass() を使いましょう。

投稿2020/06/07 08:51

kei344

総合スコア69364

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

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

nkira

2020/06/07 09:06

ご回答者様のおっしゃる通り、find('i')を消すと一つに解決しました。 初歩的な質問で申し訳ないです。。 お力添えいただきありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問