diff --git a/src/core/view/plugins/events.js b/src/core/view/plugins/events.js index ff44b3bcae271886c0c20422d6e3cd266c7edd9e..09a2a3a3f046e7e5ef1863b8bb29b7ff67ef14f7 100644 --- a/src/core/view/plugins/events.js +++ b/src/core/view/plugins/events.js @@ -83,8 +83,8 @@ export function processEvent (name, $event = {}, detail = {}, target = {}, curre target: processTarget(target, detail), currentTarget: processTarget(currentTarget), // 只处理系统事件 - touches: $event instanceof Event ? processTouches($event.touches) : $event.touches, - changedTouches: $event instanceof Event ? processTouches($event.changedTouches) : $event.changedTouches, + touches: ($event instanceof Event || $event instanceof CustomEvent) ? processTouches($event.touches) : $event.touches, + changedTouches: ($event instanceof Event || $event instanceof CustomEvent) ? processTouches($event.changedTouches) : $event.changedTouches, preventDefault () { }, stopPropagation () { } }) @@ -124,15 +124,16 @@ function touchstart (evt) { startPageX = pageX startPageY = pageY - longPressTimer = setTimeout(function () { - evt.target.dispatchEvent(new CustomEvent('longpress', { + longPressTimer = setTimeout(function () { + let customEvent = new CustomEvent('longpress', { bubbles: true, cancelable: true, target: evt.target, - currentTarget: evt.currentTarget, - touches: evt.touches, - changedTouches: evt.changedTouches - })) + currentTarget: evt.currentTarget + }) + customEvent.touches = evt.touches + customEvent.changedTouches = evt.changedTouches + evt.target.dispatchEvent(customEvent) }, LONGPRESS_TIMEOUT) }