假设我有一个带有 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/