我正在阅读 Aaron Gustafson 的一本名为“自适应网页设计”的书,如果我有一段我不理解的 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 不会被执行(这不是一个实际案例,只是一个研究案例!)