Aaron Gustafson 著の「Adaptive Web Design」という本を読んでいますが、理解できない JavaScript がありました。調査中に、false を返すことと e.preventDefault を返すことの違いを見つけました。また、JavaScript のバブリング効果についても少し知っており、バブリングを停止するには e.stopPropagation() を使用できることを理解するようになりました (少なくともブラウザではありません)。
私はフィドルで遊んでいましたが、うまくいきませんでした。バブリングが有効になる方法と関係があるのではないかと思います(ルートから要素へ、そしてその逆?)。
document.body.onclick = function (e) {
alert("Fired a onclick event!");
e.preventDefault();
if ('bubbles' in e) { // all browsers except IE before version 9
if (e.bubbles) {
e.stopPropagation();
alert("The propagation of the event is stopped.");
} else {
alert("The event cannot propagate up the DOM hierarchy.");
}
} else { // Internet Explorer before version 9
// always cancel bubbling
e.cancelBubble = true;
alert("The propagation of the event is stopped.");
}
}
フィドルは次のとおりです: http://jsfiddle.net/MekZii/pmekd/ (修正済みリンク) 編集: 間違ったリンクをコピーして貼り付けました! その修正されました!
だから私が見たいのは、アンカーをクリックしたときに、div で使用されている onclick が実行されないことです (これは実際のケースではなく、単なる研究ケースです!)