e.detail.id是什么?

e.target.id是目标事件源,e.detail.id是什么呢?

阅读 7.5k
1 个回答

标准 Event 对象里面肯定没有这个属性
应该是走了一层代理 比如:

<a id="xxx" href="javascript:;" data-click="GetId">Get Id</a>
let clicks = {

  GetId(e) {
    window.alert(e.detail.id)    
  }

}

;[...document.querySelectorAll('[data-click]')].forEach(el => {

  el.addEventListener('click', e => {
    let me = e.currentTarget
    let func = clicks[me.dataset.click]
    // 添加 detail 属性
    e.detail = {
      id: me.getAttribute('id')
    }
    typeof func === 'function' && func.call(me, e)
  })

})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题