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

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

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

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

jQuery

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

Q&A

解決済

1回答

681閲覧

【jQuery】クリック時の要素の回転について

unee

総合スコア17

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2019/03/17 10:38

編集2019/03/17 10:45

前提・実現したいこと

jQueryを使用してアコーディオンメニューを作成しております。

☆したいこと

<p>タグのついたタイトルまたは.closeをクリックしたら、 .arrowの「▲マーク(後で画像アイコンに差し替える可能性あり)」を180度半回転し閉じたい。 https://lab.sonicmoov.com/wp-content/uploads/demo/marizo/201507_accordion/#demo01

☆出来たこと

<p>タグのついたタイトルをクリックすると展開し、 <p>タグのついたタイトルと.closeをクリックで閉じます。 複数のタブが開くことはありません。

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

いろいろ調べながらしてみましたが、

<p>タグのついたタイトルまたは.closeを連動させることが出来ませんでした。 また、今書いているコードと組み合わせる方法が分からないです。

HTML

<ul class="accordion"> <li> <p class="ac arrow">アコーディオン1</p> <ul class="inner"> <li class="content1">コンテンツ</li> <li class="content1">コンテンツ2</li> <li class="content1">コンテンツ3</li> <li><span class="close">閉じる</span></li> </ul> </li> <li> <p class="ac arrow">アコーディオン2</p> <ul class="inner"> <li class="content1">コンテンツ</li> <li class="content1">コンテンツ2</li> <li class="content1">コンテンツ3</li> <li><span class="close">閉じる</span></li> </ul> </li> <li> <p class="ac arrow">アコーディオン3</p> <ul class="inner"> <li class="content1">コンテンツ</li> <li class="content1">コンテンツ2</li> <li class="content1">コンテンツ3</li> <li><span class="close">閉じる</span></li> </ul> </li> </ul>

jQuery

$(function(){ $('.accordion p').click(function(){ $(this).next('.accordion .inner').slideToggle(); $('.accordion p').not($(this)).next('.accordion .inner').slideUp(); }); $('.close').click(function () { $(this).parents('.accordion .inner').slideUp(); }); });

CSS

/*デザイン*/ ul{ list-style: none; } .accordion { text-align: center ;} .accordion .inner { display: none; } .accordion p{ cursor: pointer; padding: 10px; } .accordion p.ac{ background: #ccc; } .accordion .inner li{ padding: 10px 0; position: relative; } .accordion .inner li .close{ padding: 4px 5px ; background: #fff; border:1px solid #f0f0f0; border-radius: 10px; position:absolute; top:6px; right: 10px; font-size: 14px; cursor: pointer; } .accordion .inner li.content1{ background: #fff; } /*三角 イロイロ試した痕跡*/ .arrow:after{ content: "▼"; } .arrow02{ content: "▲"; }

試したこと

$(function(){
$('.accordion p','.close').click(function(){
$(this).toggleClass(“.arrow02”);
});
});

上記を新たに追加してみたりしておりました。
他参考にしたページ
https://jquery-jp.com/accordion/
https://www.jungleocean.com/demo/jquery-accordion/
https://lab.sonicmoov.com/wp-content/uploads/demo/marizo/201507_accordion/#demo01

どのような考え方をしたら実現できるのかご教示いただきたいです。

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

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

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

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

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

kei344

2019/03/17 10:43

(質問文は編集できます)質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
unee

2019/03/17 10:45

教えていただきありがとうございます!修正しました…!
guest

回答1

0

ベストアンサー

js

1$(function(){ 2// $('.accordion p','.close').click(function(){ 3// ↓ ひとまとめに、CSSのセレクタと同じように書く 4 $('.accordion p, .close').click(function(){ 5// $(this).toggleClass(“.arrow02”); 6// ↓ ↓ 全角を半角に 7 $(this).toggleClass(".arrow02"); 8 } ); 9} );

投稿2019/03/17 11:55

kei344

総合スコア69400

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

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

unee

2019/03/18 03:07 編集

ありがとうございます!(何度もコメント編集し、申し訳ございません) jQuery $(function(){ $('.accordion p, .close').click(function(){ $(this).toggleClass('open'); } ); } ); openというcssを作成しました。 CSSに「.arrow:after」と開いている状態の「.arrow.open:after」を設定し、 accordion pをクリックした際は思っていた通りの動作になりました。 しかし、.closeにも.openが付与され、そちらは意図した動きではないです…。 .closeをクリックした時accordion pに.付いているopenを削除したいのですが、どうしたら良いでしょうか。
unee

2019/03/18 03:10

連投すみません、上記項目解決しました! removeClassで指定し、解決しております。 お騒がせいたしました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問