Javascript 是否有可能实施;输入“;触摸事件的事件检测?

Javascript 是否有可能实施;输入“;触摸事件的事件检测?,javascript,mouseevent,touch-event,Javascript,Mouseevent,Touch Event,我有一个要求做以下事情 用户单击屏幕上的一个正方形 因为它是一个网格,所以用户可以移动到一个相邻的正方形,而无需释放鼠标,我需要检测鼠标进入这个新正方形以激活下一个正方形,在第一次移动后,移动方向变得固定 重复,直到鼠标真正松开,当鼠标释放时,检查是否匹配,仅此而已 我已经通过onmousedown、onmouseenter和onmouseleave很好地实现了这一点,在我处理最后一步的文档中添加了onmouseup 问题是,我需要它在移动设备中工作。我已经成功地用一个touchstart,to

我有一个要求做以下事情

  • 用户单击屏幕上的一个正方形
  • 因为它是一个网格,所以用户可以移动到一个相邻的正方形,而无需释放鼠标,我需要检测鼠标进入这个新正方形以激活下一个正方形,在第一次移动后,移动方向变得固定
  • 重复,直到鼠标真正松开,当鼠标释放时,检查是否匹配,仅此而已
  • 我已经通过
    onmousedown
    onmouseenter
    onmouseleave
    很好地实现了这一点,在我处理最后一步的文档中添加了
    onmouseup

    问题是,我需要它在移动设备中工作。我已经成功地用一个
    touchstart
    touchmove
    组合实现了拖动
    div
    s,而且非常简单。现在我试图实现上述行为,但我发现

    • 不再存在
      touchenter
      touchleave
      事件,而且
      touchmove
      显然只有在目标已经有
      touchstart
      事件时才会触发
    这是令人沮丧的,没有无缝的方式来做这件事,我知道触摸设备与鼠标不一样,但是有一些共同的行为,我认为应该处理没有太大的区别,而只对待不同的东西,每个设备都有。 如果有办法做到这一点,我真的会非常感激,因为我已经厌倦了阅读文档,尝试那些看似能解决问题但却无法解决的事情

    根据评论中的要求,这是我的表格


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

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


    我会记录触发事件的最后一个元素,以防止重复。如果需要,它还允许触发
    touchleave

    添加页面的粗略绘图/屏幕截图如何检测您所在的网格?