diff --git a/packages/taro-runtime/src/dom/event.ts b/packages/taro-runtime/src/dom/event.ts index 770aba47894d..a57b29230bda 100644 --- a/packages/taro-runtime/src/dom/event.ts +++ b/packages/taro-runtime/src/dom/event.ts @@ -66,9 +66,14 @@ export class TaroEvent { const cacheTarget = this.cacheTarget if (!cacheTarget) { const target = Object.create(this.mpEvent?.target || null) + const currentEle = env.document.getElementById(target.dataset?.sid || target.id || null) // Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id const element = env.document.getElementById(target.targetDataset?.sid || target.dataset?.sid || target.id || null) - target.dataset = element !== null ? element.dataset : EMPTY_OBJ + + target.dataset = { + ...(currentEle !== null ? currentEle.dataset : EMPTY_OBJ), + ...(element !== null ? element.dataset : EMPTY_OBJ) + } for (const key in this.mpEvent?.detail) { target[key] = this.mpEvent!.detail[key]