javascript - 如何取消 Mobile Safari 上的触摸操作?

标签 javascript iphone mobile-safari

假设我有一个带有 touchEnd 事件监听器的按钮。如果我触摸按钮,将手指滑出按钮,然后释放触摸,我想“取消”触摸事件。

如果我使用 onClick 执行以下操作,则行为正确:

buttonElement.addEventListener('click', function (event) {
    if (event.target === this) {
    // Do something
    }
});

但是,这不适用于“touchEnd”,因为 event.target 指向 originating 元素(在本例中为 buttonElement) ,而不是我释放触摸的元素。

除了在“touchMove”上设置标志之外,还有更好的通用方法吗?谢谢!

最佳答案

使用触摸事件:touchstart、touchmove、touchcancel、touchend。请参阅Apple docs

无论如何,我认为我不会尝试取消该事件。在这种情况下,我会检查“光标”(手指)的位置,如果它在该区域之外,则不触发该函数。

关于javascript - 如何取消 Mobile Safari 上的触摸操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474385/

相关文章:

javascript - 如何旋转以中心为中心的文本旋转到数字

ios - 多个应用具有相同的 IAP 产品 ID

iphone - iOS 在 iPad 上触摸(自动)偏移

javascript - 如何检测照片/视频是从相机拍摄的还是从 iphone safari 中的相机胶卷导入的

javascript - 如何让js持续等待fetch请求的结果和处理?

javascript - 如何使用 jQuery 跨浏览器为 PNG 图像着色

javascript - Gmail 的 Chrome 扩展程序

ios - 显示横幅广告 Objective-C 的问题

javascript - iOS Safari - 禁用捏合缩放选项

css - 移动版 Safari -webkit-background-clip : text; and/or CSS-based text gradients in mobile safari