LoginSignup
4
3

More than 5 years have passed since last update.

区分したコールバックの作成

Posted at

ちょっとした思いつきで、汎用に使えそうなコードを書いてみたのですが、公開できる形に持っていくのが案外手間でした。

作った背景

Webサイトで使うスクリプトが(Railsだということもあって)大Script主義だったのですが、ページごとに実行するものを振り分けるのが複雑化して来ました。そこで、Rails側ではコントローラーやメソッドに関する情報をビューへ埋め込んで、JavaScript側ではそれを拾って切り分け動作を行おうと考えました。そのJavaScript側のうち、「コールバックを区分して実行する」部分だけを1つのライブラリにしてみました。

Jkr2255/GroupCallbacks @ GitHub

使い方

ブラウザで使う場合、grouped_callbacks.jsをそのまま読みこめばグローバルにGroupedCallbacksが出現します。で、これはコンストラクタなので、まずは実際のオブジェクトを生成します。

var callbacks = new GroupedCallbacks();

それから、.add(グループ名,関数)で関数を追加して、.run(グループ名)で実行する流れです。

グループについて

グループ名としては、単一文字列(1階層)もしくは文字列の配列(2階層以上の場合)を指定できます。そして、実行対象ですが、.run(['main', 'sub'])とすると、グループを['main','sub']として登録したもの、['main','sub', さらに続く]で登録したもの以外に、mainで登録したものも実行されます(親グループで登録したものは、子グループの実行時にも一緒に実行されます)。また、順番については何も保証されません。

その他

何かありましたら、Jkr2255/GroupCallbacks @ GitHubにご相談いただければと思います。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3