preventDefault, stopPropagation,の違い

最近javascriptをきちんと勉強なおしていて、 preventDefaultとstopPropagationの違いがわからなかったのでメモ

evt.preventDefault => イベントなどを実行しないで終了させる。たとえば大文字を入力したら文字の入力をさせずにアラームを表示させる場合



function checkName(evt) {
    var charCode = evt.charCode;
    if (charCode != 0) {
        if (charCode < 97 || charCode > 122) {
            // これがなかったらalert表示された後に
            // 大文字が入る
            // 入力した文字の表示などのイベントを無効にする
            // return falseがはいったときは何もイベントをやらずに文字が入力される
            evt.preventDefault();
            alert('大文字が入りました!');
        }
    }
}

evt.stopPropagation() => 子要素でクリックした際、親要素へのイベントの伝搬をふせぐ 下記の例だとhoge22をクリックすると、親要素のhogeにまでイベントが伝搬する



hoge
hoge22

return false; => 何もしないで終了