diff --git a/src/core/view/components/image/index.vue b/src/core/view/components/image/index.vue
index 1c5b5cf85b9dad75989afbd86a13ce5732f76298..62a29e4b2cf1432269df116d12cf2db7b5bab801 100644
--- a/src/core/view/components/image/index.vue
+++ b/src/core/view/components/image/index.vue
@@ -7,6 +7,7 @@
2 || Math.abs(y1 - y0) > 2)) {
+ document.addEventListener('click', clickEventListener, true)
+ hasClickListenerOld = true
+ }
// TODO target currentTarget touches changedTouches
const res = fn($event, 'move', $event.pageX, $event.pageY)
x1 = $event.pageX
@@ -94,15 +108,23 @@ export default {
return fn($event, 'end', $event.changedTouches[0].pageX, $event.changedTouches[0].pageY)
}
})
- const mouseUpEventListener = this.__mouseUpEventListener = function ($event) {
+ const mouseUpEventListener = this.__mouseUpEventListener = ($event) => {
hasMouseDown = false
if (!hasTouchStart && $eventOld) {
+ // 鼠标抬起,存在监听,则 mouseup 结束后移除就监听事件
+ if (hasClickListenerOld) {
+ setTimeout(() => {
+ document.removeEventListener('click', this.__clickEventListener, true)
+ hasClickListenerOld = false
+ }, 0)
+ }
// TODO target currentTarget touches changedTouches
$eventOld = null
return fn($event, 'end', $event.pageX, $event.pageY)
}
}
document.addEventListener('mouseup', mouseUpEventListener)
+
addListenerToElement(element, 'touchcancel', function ($event) {
if ($eventOld) {
hasTouchStart = false