somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Javascript】イベントバブリングの制御

イベントバブリングで親要素にて処理が実行されないように制御する方法についてのメモです。

stopPropagation()

イベント用の関数の引数であるイベントオブジェクトに存在する関数です。これを実行すると親要素のイベントを実行しないようになります。

cancelBubble

上記どおり、引数のイベントオブジェクトに存在するので、IEでは他の方法を使うことになります。見出しのプロパティはwindow.eventのものです。これをtrueにすることでイベントバブリングを制御できます。

要素オリジナルの動作制御

おまけです。formをsubmitしたときやaタグをclickしたときなどブラウザの挙動が独自に決まっているものがあります。これらの動作を停止する場合、return false;で停止することができます。これ以外の方法がありましたので、メモしておきます。

イベント引数の場合、preventDefault()を実行します。IEの場合、window.event.returnValueプロパティをfalseにします。

どちらにしろ、ブラウザの違いを吸収することは面倒なのでreturn false;にしようと思います。