如何在不阻止滚动的情况下阻止mousedown事件?

问题描述 投票:0回答:1

我需要防止在 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)
});
javascript scroll event-handling mousedown touchstart
1个回答
0
投票
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)
});
© www.soinside.com 2019 - 2024. All rights reserved.