最後面提到的那個問題,我稍微試了一下

應該是因為 removeEventListener 少了第三個參數,它其實跟 addEventListener 一樣,也需要第三個參數來決定是要移除哪個階段 listener,仔細想想好像也滿合理,因為你可以在捕獲跟冒泡都加上同一個 function。

所以文中的程式碼的確是按照註冊的順序執行的,但只有 content.removeEventListener(‘click’, bubblingHandler) 這個有執行成功(就跟 addEventListener 一樣,冒泡階段第三個參數可省略),把捕獲事件移除的並沒有。

只要把捕獲那行改成:content.removeEventListener(‘click’, capturingHandler, true) 就一切正常了

Written by

重度拖延症患者,興趣是光想不做,有很多想做的事,卻一件都沒有執行。無聊的時候喜歡寫文章,發現自己好像有把事情講得比其他人清楚的能力。相信分享與交流可以讓世界更美好。Medium 文章列表請參考:https://aszx87410.github.io/blog/medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store