2009
1211

jQueryのイベントを便利に管理するプラグインを作りました / Introduction of a plugin to manage events of jQuery.

ajaxを使ったユーザーインターフェイスを作っていると、状況によってボタンを無効化したり、また有効にしたり、別の動作をさせたりしたいときがよくあります。

そういった場合、イベントをbindしたりunbindしたりを繰り返すのが面倒だし、コードも長くなってしまいます。

こんな問題を解決する為に、一時的にイベントハンドラを無効化して、後から簡単に元に戻せたり、状況に合わせて複数のイベントハンドラのグループを切り替えることができる「EventManager」というプラグインを作りました。

例えば、ajaxでページネーションを行う場合、ナビゲーションの「前へ」のボタンは前のコンテンツがもうないときはマウスオーバーやクリックのイベント処理を一時停止しておき、「次へ」がクリックされて、「前へ」のボタンを有効にする必要が出て来たときに、一時停止しておいたイベント処理を復活させることができます。

I made a plugin to manage events of jQuery. The plugin makes it easy to disable the event handlers temporary and enable them again.

使い方 / How to use

使い方は簡単です。以下のように「stopEvents」というメソッドを実行すると全てのイベント処理が一時停止されます。
(「SomeSelector」の部分は対象となる要素を選択するセレクタに書き換えてください。)
特定のタイプのイベントだけを指定する場合は「stopEvents("click mouseover")」のように引数でイベントタイプの文字列を指定することができます。(複数指定する場合は半角スペースで区切る)

It's easy to use, just call the stopEvents () method to turn the all event handlers off. If you want to specify the types of event, pass the types of event as a string argument.

$("SomeSelector").stopEvents();

一時停止したイベント処理を復活させるには以下のように「resumeEvents」というメソッドを実行します。stopEvents」と同様に引数でイベントのタイプを指定することもできます。

To turn the event handlers on again, use the resumeEvents() method.

$("SomeSelector").resumeEvents();

また、現在バインドされている複数のイベントハンドラの状態を名前を付けて保存しておき、後からいつでもロードできる機能もあります。現在の状態を保存するには以下のように「saveEventSet」メソッドを利用します。
(「NameOfEventSet」の部分は分かり易い名前を付けます)

You can also save all binded event handlers with a name. use saveEventSet() method like below.

$("SomeSelector").saveEventSet("NameOfEventSet");

上記のように名前を付けて保存しておいたイベントセットをロードするには「loadEventSet」メソッドを利用します。

You can load named event set by using loadEventSet() method.

$("SomeSelector").loadEventSet("NameOfEventSet");

デモ / Demo

こちらにデモを用意しました。
http://lab.starryworks.jp/js/eventmanager/demo.html

簡易ドキュメント / Document

簡単なドキュメントも用意しました。
http://lab.starryworks.jp/js/eventmanager/docs.html

ライセンス / Lisence

MITライセンスです。個人でも商用でも無料で利用可能です。
このスクリプトの利用により直接的または間接的に生じたいかなる損害に関しても、その責任を負いません。
まだまだ未熟者の書いたスクリプトなのでバグやおかしな書き方してる部分などあれば、是非コメントください。

lisenced under MIT lisence.
Please leave a comment if you have any request or find bugs.

ダウンロード / Download

eventmanager.zip ( 8KB )

コメント

Comments

トラックバック

TrackBacks

TrackBack URL : http://www.starryworks.co.jp/mt/mt-tb.cgi/115