ie8不兼容stopPropagation

转载请注明出处WangYuheng’s Blog

现象

IE8下stopPropagation,事件仍被父类捕获执行

原因

IE8 无法通过stopPropagation阻止事件冒泡

解决方法

通过return false阻止事件执行。

附录

event.stopPropagation();

事件处理过程中,阻止了事件冒泡,但不会阻止默认行为
stopPropagation() 相当好用, 可是 IE8 及以前版本都不支持.
IE 的事件对象包含特有的属性 cancelBubble, 只要将它赋值为 false 即可阻止事件继续. 如:

// 在弹出对话框上点击时, 不进行任何页面操作, 并阻止冒泡
document.getElementByIdx_x(‘dialog’).onclick = function(ev) {
event.cancelBubble = false;
};

return false;

事件处理过程中,阻止了事件冒泡,也阻止了默认行为(包括超链接的跳转)

event.preventDefault();

事件处理过程中,不阻击事件冒泡,但会阻止默认行为(它会执行所有事件,却不执行超链接跳转)