DESIGN BLOGデザイン事務所の制作ブログ

【jQuery】slideToggleを使って要素をクリックで要素を表示・非表示させる

JO
株式会社ビーエムビー

「Q&A」などでよく使われる、クリックすると詳細が表示される、アコーディオンメニュー。この記事では、そのアコーディオンメニューを、jQueryのslideToggleというメソッドを使って作成する方法をご紹介します。

1、slideToggleの使用例 まずはjsの記述について

<script>
$(function($){
$('ul.qa li .question').click(function(){
$(this).toggleClass('open');
$(this).next('answer').slideToggle(150);
});
});
</script>

2、次は関連するHTMLの書き方例

<ul class="qa">
<li>
<div class="question"><span>Q.</span>お申し込み方法は?</div>
<div class="answer"><span>A.</span>クレジットカード(ご本人名義)でのご精算となります。デビットカード・プリペイドカード・現金でのお支払いはご利用いただけません。法人のお客様は請求書でのお支払も可能です。</div>
</li>
<li>
<div class="question"><span>Q.</span>お申し込み方法は?</div>
<div class="answer"><span>A.</span>クレジットカード(ご本人名義)でのご精算となります。デビットカード・プリペイドカード・現金でのお支払いはご利用いただけません。法人のお客様は請求書でのお支払も可能です。</div>
</li>
</ul>

以上、こんな感じで「question」のクラスがついたHTMLをクリックすると、
①クリックした要素($this)に、openのクラスを付与(addClass)して、矢印アイコンなどの向きを変えたりする。
②クリックした要素に隣接(直下のみ)の「answer」のクラスを持つ要素を表示する(show)。

これらの「addClass」も「show」もどっちもトグル(toggle)なので、カチカチクリックするごとに「removeClass」と「hide」を繰り返す。
その結果、質問文章をクリックしたら答えがパカッと開いて、もう一回押すと閉じる動きになってるよ。

注意したいのは、上記の記述は一度クリックした質問と答えは次の質問をクリックした時に閉じるものではなく、開きっぱなしバージョンということ。
そんな時はクリックしたもの以外「.not()」を使います。

「li.question」のとこで説明すると、「$('ul.qa li .question').not(this).removeClass('open');」こんな感じ。
questionクラスを持ったliだけど、クリックしたli.question以外からopenのクラスを除去するっていう内容です。同様にanswer側も「hide()」を使って非表示にしたら完成。正解コードはあえて書かないので、やってみて分からなければ誰か先輩に教わってください。

株式会社ビーエムビー

株式会社ビーエムビー

〒114-0031 東京都北区十条仲原1-4-8 商店街会館311 TEL&FAX:03-5948-5996

東京都北区のWEBやDTP(印刷物)のデザイン制作会社です。ホームページ制作やLP(ランディングページ)の作成、ECサイト(楽天ストアなど)の構築などのWEBデザイン、チラシ・ポスター・名刺・パンフレット・看板などの印刷物デザインに対応しています。お客様の業務形態や用途に合わせたwordpressによるCMSサイトをフルスクラッチにて構築することが可能です。お気軽にお問い合わせください。

その他の制作ブログ一覧

Apple Pencilを使ってiPadでお絵描きを始めたい方へ ペンタブレットを使って絵を描くことについて え~っと、たぶん2年くらい前かな。iPadとApple Pencilを使って絵を描き始めたのは。そんな僕から、これからiPadでペンタブデビューする方に役立てばと思い、まとめ記事にしてみました。読みにくい記事かもしれませんがどうかお許しください。 iPad絵描きデビューしてからは、大体3日に一度くらいは絵を描き続けています。やはり便利なので、絵を描く… イラスト制作
【初心者必見】SEO対策の基本からプロ秘策まで完全解説! 1. SEO対策の基本を理解しよう SEOとは?初心者向けの基本説明  SEOは、「Search Engine Optimization(検索エンジン最適化)」の略で、Googleやその他の検索エンジンでWebサイトを上位表示させることを目指す施策を指します。検索エンジンからのトラフィックを増加させるのが主な目的です。具体的には、ユーザーにとって有益な情報を提供すること、そしてその情報を検索エ… WEB制作HTMLPHPWordPress
【写真付き】エックスサーバーでWordPressをインストールする方法 この記事ではエックスサーバーで wordpressを簡単インストールする方法 を写真付きで詳しく説明しています。すでにエックスサーバーの契約と独自ドメインの設定が完了している方を対象に、サーバーパネルにログインするところから 実際に WordPress 管理画面にログインできるまでの流れを順を追って説明していきます。 1.サーバーパネルにログインする エックスサーバーのログインページ(… WEB制作wordpressWordPress
知られざるHTMLタグ!知っておくと便利なタグ10選 HTMLはウェブページを構築するための基盤で、一般的に使われるタグはよく知られています。しかし、実際にはあまり注目されていないけれど、便利で強力なタグもたくさんあります。今回は、あまり知名度のないけれど知っておくと便利なHTMLタグを紹介し、その使い方とメリットを解説します。 1. <details> と <summary> 使い方: これらのタグは、ユーザーがクリック…
一覧に戻る