JavaScript 快速筆記:Event.currentTarget

總結

在觀摩 material-ui Dialog 原始碼的時候發現過去沒用過的 property Event.currentTarget,記錄一下與 Event.target 的差異

筆記

DEMO CODE 解說:

bonus track: Event.stopImmediatePropagation

搜尋相關資料時連帶找到 Event.stopImmediatePropagation(),與 stopPropagation 的差異在:如果一個 DOM 元素被加上複數個同樣事件類型但不同 handler function 的監聽器,那麼各個 handler function 會根據其在程式碼的順序由上到下依序執行,此時如果在 handler function 中呼叫 stopImmediatePropagation 則剩下來的 handler function 都不會被觸發

MDN: If several listeners are attached to the same element for the same event type, they are called in the order in which they were added. If stopImmediatePropagation() is invoked during one such call, no remaining listeners will be called.

於上述 DEMO CODE 中的 funcTwo 呼叫了 e.stopImmediatePropagation(),故 funcThreefuncFour 都沒有被執行,useState 變數 result 中只有前兩個 functions 執行完的結果

參考文件