能否使用触控事件实现“回车”事件检测?

5
我需要做以下事情:
1. 用户在屏幕上点击一个方块。 2. 由于是网格,周围有相邻的方块,用户可以在不释放鼠标的情况下移动到相邻的方块,我需要检测鼠标进入这个新方块以激活下一个方块,在第一次移动后,移动方向变为固定。 3. 重复以上步骤,直到鼠标释放,当鼠标释放时,检查是否匹配即可。
我已经使用 onmousedown、onmouseenter 和 onmouseleave 实现了这个功能,并在文档中添加了 onmouseup 处理最后一步。
问题是,我需要在移动设备上实现此功能。我已成功使用 touchstart、touchmove 组合来拖动 div,这很简单。现在我尝试实现上述行为,但发现:
  • 现在不存在touchentertouchleave事件,而且touchmove事件显然只有在目标已经有了touchstart事件时才会触发。

很让人沮丧的是,没有无缝的方法来解决这个问题。我明白触摸设备和鼠标不同,但是有些常见的行为应该被视为没有太大区别,只有每个设备特有的东西才需要特别处理。

如果有办法解决这个问题,我会非常感激,因为我已经厌倦了阅读文档和尝试看似可以解决问题但实际上并不能解决问题的方法。

如评论中所请求的,这是我的网格 enter image description here

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


添加一个页面的草图/截图 - Sagar V
1个回答

1
我的最终解决方案是在容器(即表格主体)上添加一个touchmove监听器,然后使用elementFromPoint()手动触发给定元素的事件。我会跟踪最后一个触发事件的元素,以防止重复触发。如果需要,它也可以触发touchleave

你如何检测你在哪个网格上? - Jun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接