说标准写法有点吹了, 可能是笔者并没有接触过太多的奇葩浏览器, 故有这种结论。有更多经验的小伙伴可以贴自己的代码出来
笔者经常用到的代码是:
function somefunc(obj, evt) { let e = (evt) ? evt : window.event; if (window.event) { e.cancelBubble = true; } else { e.stopPropagation(); } // TODO }
在dom里传两个参数, 一个是this对象一个事件
<div onclick="somefunc(this,event)"></div>
虽然在某些新ide里会提示event和onclick写法已过期, 但ie显然不这么想。
防止事件冒泡会应用到哪些场景?
比如你有两个div, 父子dom关系, 你不想让子dom绑定的事件同时让父dom事件触发, 就用到这个判断。其他场景下没必要写那么啰嗦。