是否可以通过触摸事件实现“输入”事件检测?

Iha*_*imi 5 javascript mouseevent touch-event

我需要执行以下操作

  1. 用户单击屏幕上的正方形。
  2. 有相邻的方块,因为它是一个网格,然后用户可以在不释放鼠标的情况下移动到相邻的方块,我需要检测鼠标进入这个新的方块以激活下一个,在第一次移动之后,移动的方向变得固定。
  3. 重复,直到鼠标被释放,当鼠标被释放时,检查是否匹配,仅此而已。

我已经用onmousedownonmouseenter和很好地实现了这一点,并在我处理最后一步的文档中onmouseleave添加了。onmouseup

问题是,我需要它在移动设备上工作。我已经成功地用,div组合实现了拖动,而且很简单。现在我尝试实现上述行为,但我发现,touchstarttouchmove

  • 不再存在 atouchentertouchleave事件,并且touchmove显然只有在目标已经发生touchstart事件时才会触发。

令人沮丧的是,没有无缝的方法可以做到这一点,我确实知道触摸设备与鼠标不同,但我认为应该对待一些常见的行为没有太大区别,并且只区别对待每个设备的特殊事物有。

如果有办法做到这一点,我真的会很感激,因为我非常厌倦阅读文档和尝试看似解决问题但实际上没有解决的事情。

根据评论中的要求,这是我的网格 在此输入图像描述

请注意,这个网格不是静态的,也不是直接使用 HTML 创建的,它是从文件中提取并使用不同的程序生成的,它只是一个<table>.

Iha*_*imi 1

touchmove我的最终解决方案是在容器(表体)上添加一个侦听器,然后elementFromPoint()手动触发给定元素的事件。

我跟踪触发事件的最后一个元素,以防止多次执行该操作。touchleave如果需要,它还允许触发。