イベント処理を一時的に止めたい事ってありませんか?
submitボタンの連打を防止したり、ajax中に処理が終わるまで、
他のイベント処理をさせたくなっかたりすることありませんか?
その度にフラグを使ったり、画面を覆うようなDIVを作成したりしていませんか?
EventLockerでイベントを止めちゃいましょう!
そんな時に役立つのが今回ご紹介するEventLocker!
EventLockerを使うと、いつでもイベントをロック(止める)することができます。
もちろんそのイベントのロックの解除も行うことができます。
EventLockerの使い方
使い方は簡単!
ロックしたいイベント名を指定して、EventLockerをnewして、lockするだけ。
解除するときはunlockしてください。
jQueryにも依存してないから使いやすいし、特定のイベントだけロックできるから安心ですね。
理屈としては、デリゲーターのキャプチャフェーズでイベントの伝播を止めています。
new Eventlocker({ delegator: obj, events: ['click'] });
のようにデリゲーターも指定できます。
delegatorのデフォルト値はdocumentです。
eventsのデフォルト値は['click', 'dblclick', 'mousemove', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'wheel', 'keydown', 'keypress', 'keyup' ]
です。
サンプルプログラム
こちらからEventLockerライブラリとサンプルプログラムをダウンロードできます。