|
最近在做特效的過程中遇到了獲取目標(biāo)事件源的情況,一般情況下我們獲取目標(biāo)事件源都是誰是調(diào)用者誰就是事件源,但是當(dāng)有批量的DOM需要操作的時候,要判斷哪一個dom是事件源就不是很明確了,使用e.target可以準(zhǔn)確地獲取事件源,并且在使用的過程中可以比較判斷,從而實現(xiàn)我們的代碼。 舉個例子:當(dāng)做一個拖拽的案例的時候,有多個事件源,但是想要知道鼠標(biāo)點(diǎn)擊的是不是我們想要的事件源的時候(例如:其他區(qū)域和事件源進(jìn)行判斷),我們就可以使用e.target,比較獲取的事件源的Id,classname,nodename... event.target經(jīng)常使用的屬性有以下幾個: event.target.nodeName //獲取事件觸發(fā)元素標(biāo)簽name event.target.id //獲取事件觸發(fā)元素id event.target.className //獲取事件觸發(fā)元素classname event.target.innerHTML //獲取事件觸發(fā)元素的內(nèi)容 在了解e.target的同時,還有一個e.currentTarget,這兩個屬性讓人傻傻的認(rèn)不清楚,我按照我的理解記錄一下: 一般情況下: e.currentTarget : 指的是綁定了事件監(jiān)聽的元素(可以理解為觸發(fā)事件元素的父級元素) e.target: 指的是真正觸發(fā)事件的那個元素 事件冒泡是:如果綁定的事件對象子對象(比如點(diǎn)擊頁面上的button)時,e.currentTarget == e.target: 指的是真正觸發(fā)事件的那個元素 如果綁定的事件對象是document時,e.currentTarget是document,而e.target 是btn |
|
|