diff --git a/packages/uni-core/src/view/plugin/componentInstance.ts b/packages/uni-core/src/view/plugin/componentInstance.ts index 40da260f4e4db22433ef455c443846568237e6ec..745e947cb5a341a23e86e1b1c30badd3112e242d 100644 --- a/packages/uni-core/src/view/plugin/componentInstance.ts +++ b/packages/uni-core/src/view/plugin/componentInstance.ts @@ -33,12 +33,19 @@ export function $nne(this: ComponentPublicInstance, evt: Event) { return res } +function findUniTarget(target: HTMLElement): HTMLElement { + while (target && target.tagName.indexOf('UNI-') !== 0) { + target = target.parentElement as HTMLElement + } + return target +} + export function createNativeEvent(evt: Event | TouchEvent) { const { type, timeStamp, target, currentTarget } = evt const event = { type, timeStamp, - target: normalizeTarget(target as HTMLElement), + target: normalizeTarget(findUniTarget(target as HTMLElement)), detail: {}, currentTarget: normalizeTarget(currentTarget as HTMLElement), } diff --git a/packages/uni-h5/dist/uni-h5.cjs.js b/packages/uni-h5/dist/uni-h5.cjs.js index 82f10d1fc598865a933638a7283332f7ed0f0035..9ff48ce6ccf7ff51d6fc1635805ee3632f4bab71 100644 --- a/packages/uni-h5/dist/uni-h5.cjs.js +++ b/packages/uni-h5/dist/uni-h5.cjs.js @@ -282,12 +282,18 @@ function createCallbacks(namespace) { } }; } +function findUniTarget(target) { + while (target && target.tagName.indexOf("UNI-") !== 0) { + target = target.parentElement; + } + return target; +} function createNativeEvent(evt) { const {type, timeStamp, target, currentTarget} = evt; const event = { type, timeStamp, - target: uniShared.normalizeTarget(target), + target: uniShared.normalizeTarget(findUniTarget(target)), detail: {}, currentTarget: uniShared.normalizeTarget(currentTarget) }; diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index da4354382530c8b340a3b716a017fa7e99370e86..568032ed84e6fa15fb8df466aded373e05f4771b 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -838,12 +838,18 @@ function $nne(evt) { } return res; } +function findUniTarget(target) { + while (target && target.tagName.indexOf("UNI-") !== 0) { + target = target.parentElement; + } + return target; +} function createNativeEvent(evt) { const {type, timeStamp, target, currentTarget} = evt; const event = { type, timeStamp, - target: normalizeTarget(target), + target: normalizeTarget(findUniTarget(target)), detail: {}, currentTarget: normalizeTarget(currentTarget) };