jQueryでイベントをはがさないでハンドラを実行させない方法
jQueryにevent.stopImmediatePropagation()
ってメソッドがあった。
http://api.jquery.com/event.stopimmediatepropagation/
有名なstopPropagation()
はイベントが親要素へ伝播(バブリング)していくのを防ぐけど、
このstopImmediatePropagation()
の方はさらに同じ要素にバインドされた他のイベントハンドラの実行も防いでくれる。
イベントバブリング | 同要素内の他のハンドラ | |
---|---|---|
stopPropagation | 防ぐ | 実行する |
stopImmediatePropagation | 防ぐ | 実行しない |
知らなかった。
色々な役目を背負い過ぎてしまった可哀想な要素を救うのに一役買いそう。
無論そんなケースに遭遇する時点で何かがおかしい気もするけど。
過去に一度だけこのメソッドを知ってたら、、という記憶があるけどそのプロジェクトは他にも色々カオスだった。