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)
 }