說標準寫法有點吹了, 可能是筆者並沒有接觸過太多的奇葩瀏覽器, 故有這種結論。有更多經驗的小夥伴可以貼自己的代碼出來
筆者經常用到的代碼是:
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事件觸發, 就用到這個判斷。其他場景下沒必要寫那麽嚕囌。