欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

e.target與e.currentTarget對象的使用區(qū)別詳解

 更新時間:2022年07月04日 15:52:35   作者:Sunshine_Lin  
這篇文章主要為大家介紹了e.target與e.currentTarget的使用區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

背景

大家開發(fā)中經(jīng)常會跟DOM的事件打交道,也會經(jīng)常用到e.targete.currentTarget這兩個對象,但是卻有很多人根本就不知道這兩個有什么區(qū)別~~~

冒泡 & 捕獲

當你觸發(fā)一個元素的事件的時候,該事件從該元素的祖先元素傳遞下去,此過程為捕獲,而到達此元素之后,又會向其祖先元素傳播上去,此過程為冒泡

    <div id="a">
      <div id="b">
        <div id="c">
          <div id="d">哈哈哈哈哈</div>
        </div>
      </div>
    </div>

addEventListener

addEventListener是為元素綁定事件的方法,他接收三個參數(shù):

第一個參數(shù):綁定的事件名

第二個參數(shù):執(zhí)行的函數(shù)

第三個參數(shù):

  • false:默認,代表冒泡時綁定
  • true:代表捕獲時綁定

target & currentTarget

false

我們給四個div元素綁定事件,且addEventListener第三個參數(shù)不設(shè)置,則默認設(shè)置為false

const a = document.getElementById('a')
const b = document.getElementById('b')
const c = document.getElementById('c')
const d = document.getElementById('d')
a.addEventListener('click', (e) => {
  const {
    target,
    currentTarget
  } = e
  console.log(`target是${target.id}`)
  console.log(`currentTarget是${currentTarget.id}`)
})
b.addEventListener('click', (e) => {
  const {
    target,
    currentTarget
  } = e
  console.log(`target是${target.id}`)
  console.log(`currentTarget是${currentTarget.id}`)
})
c.addEventListener('click', (e) => {
  const {
    target,
    currentTarget
  } = e
  console.log(`target是${target.id}`)
  console.log(`currentTarget是${currentTarget.id}`)
})
d.addEventListener('click', (e) => {
  const {
    target,
    currentTarget
  } = e
  console.log(`target是${target.id}`)
  console.log(`currentTarget是${currentTarget.id}`)
})

現(xiàn)在我們點擊,看看輸出的東西,可以看出觸發(fā)的是d,而執(zhí)行的元素是冒泡的順序

target是d currentTarget是d
target是d currentTarget是c
target是d currentTarget是b
target是d currentTarget是a

true

我們把四個事件第三個參數(shù)都設(shè)置為true,我們看看輸出結(jié)果,可以看出觸發(fā)的是d,而執(zhí)行的元素是捕獲的順序

target是d currentTarget是a
target是d currentTarget是b
target是d currentTarget是c
target是d currentTarget是d

區(qū)別

我們可以總結(jié)出:

e.target觸發(fā)事件的元素

e.currentTarget綁定事件的元素

以上就是e.target與e.currentTarget對象的使用區(qū)別詳解的詳細內(nèi)容,更多關(guān)于e.target與e.currentTarget區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論