? ? ? 想必大家對它們都很熟悉,但是你知道它們的區別么?今天我就通過一個簡單的例子向大家詳細介紹一下這兩個的區別。
? ? ? 首先,你需要了解的是JavaScript的事件冒泡和事件捕捉。
? ? ? 事件冒泡:觸發事件時,當到達事件目標時不會立即結束,會逐層向上冒泡。
? ? ?事件捕獲:與事件冒泡相反,事件發生時,最先發生的是document。
? ? ? 有了上面的知識,現在進入本文重點。event.target直接指向事件目標,是不會隨著事件冒泡的發生而改變;而this是指向調用該方法的對象。
? ? ?下面來以一個例子來說明. 有個塊級元素內含行內元素,點擊時則輸出該元素的ID。當我點擊span ,由于冒泡的原因,而this 指向調用當前方法的對象。所以會先輸出span 元素的ID,后輸出 p 元素的ID。
? ? ? 當我使用的是event.target時,點擊span元素時,兩次均輸出了span元素的ID。