今回は「jQueryでアコーディオンのプラグインを作成する方法 スピード設定編」で作成したjQueryプラグインのコードに対して、さらに拡張を加えていきたいと思います。

アコーディオン関連の過去の記事

おさらい:前回のソースコード

スピードだけじゃなくて、いろいろ変えたい!

アニメーションスピードだけではなく、以下の内容も変更できるように修正してみましょう。

  • 開閉対象を指定できるようにする(隣接要素以外に指定できるように)
  • 開閉する度に、任意のCSSクラス名をつけたり消したりする

解説

これで、#trigger2と開閉対象要素は、開閉する度にis_openという名前のCSSクラス名を、トグル式につけたり消したりすることができるようになりました。(スピードもslowで設定しているとおり、遅いスピードで開閉しています。)
また、#trigger4をクリックすると、隣接要素ではなく#target4を開閉します。(スピードもfastで設定してるとおり、速いスピードで開閉します。)

このように、引数にオプション設定をして、関数の中で処理わけをすることによって、関数を無駄に増やさず、デフォルトとは違ったアコーディオンの動きを作ることができます。
このようなオプション設定は、オブジェクト型で渡すと、引数の順番を気にせず設定できて便利です。(オプション設定の数が少ないなら、直接渡してもよさそうですが。)

開閉した後に実行される処理を入れたい!

先ほどのソースのオプション設定に、開閉した後に実行される処理(コールバック関数)を追加してみましょう。

option.onSlidに、関数(開閉した後に実行される処理)を渡すと、アコーディオンプラグインの中(クリックのコールバック関数の中)で実行されるようにになりました。
上記のソースの例だと、開閉が完了する度にアラートが出ます。

いかがでしたか?!
3回にわたって、アコーディオン機能を例に、jQueryプラグインの作り方を書いてみました!

また、どこかでお会いしましょう〜。よいjQueryプラグインライフを〜♪

あわせて読みたい記事