event.preventDefault() と event.stopPropagation() の違いが、わかったつもりでわかってなかった。 piro さんに Twitter で教えてもらって、説明が具体的でとてもわかりやすかったので今度こそちゃんと理解できたはず。 要するに、ブラウザの挙動をキャンセルしたいなら常に preventDefault() を使えと。 stopPropagation() は自分で js で書いて登録したイベントハンドラの伝播をキャンセルしたい場合。 piro さんありがとうございました!