我需要防止在 touchstart 事件之后发生 mousedown 事件,但不知道如何在不阻止用户滑动屏幕时滚动的情况下做到这一点。 touchstart 事件侦听器无法删除,因为如果用户尝试几乎同时触摸两个点,则不会触发任何事件。
canvas.addEventListener('touchstart', function (event) {
touchPressed = true
if (currentScreen.name == "end") event.preventDefault()//prevents mousedown event
userInput(
event.targetTouches[event.targetTouches.length - 1].clientX,
event.targetTouches[event.targetTouches.length - 1].clientY
)
});
canvas.addEventListener('touchend', function () {
touchPressed = false
});
canvas.addEventListener('mousedown', function (event) {
userInput(event.clientX, event.clientY)
});
canvas.addEventListener('touchstart', function (event) {
touchPressed = true
userInput(
event.targetTouches[event.targetTouches.length - 1].clientX,
event.targetTouches[event.targetTouches.length - 1].clientY
)
});
canvas.addEventListener('touchend', function () {
touchPressed = false
touchEventHasBeenTriggered = true
});
canvas.addEventListener('mousedown', function (event) {
if(touchEventHasBeenTriggered){
touchEventHasBeenTriggered = false
return
}
userInput(event.clientX, event.clientY)
});