我需要做以下事情:
1. 用户在屏幕上点击一个方块。 2. 由于是网格,周围有相邻的方块,用户可以在不释放鼠标的情况下移动到相邻的方块,我需要检测鼠标进入这个新方块以激活下一个方块,在第一次移动后,移动方向变为固定。 3. 重复以上步骤,直到鼠标释放,当鼠标释放时,检查是否匹配即可。
我已经使用 onmousedown、onmouseenter 和 onmouseleave 实现了这个功能,并在文档中添加了 onmouseup 处理最后一步。
问题是,我需要在移动设备上实现此功能。我已成功使用 touchstart、touchmove 组合来拖动 div,这很简单。现在我尝试实现上述行为,但发现:
1. 用户在屏幕上点击一个方块。 2. 由于是网格,周围有相邻的方块,用户可以在不释放鼠标的情况下移动到相邻的方块,我需要检测鼠标进入这个新方块以激活下一个方块,在第一次移动后,移动方向变为固定。 3. 重复以上步骤,直到鼠标释放,当鼠标释放时,检查是否匹配即可。
我已经使用 onmousedown、onmouseenter 和 onmouseleave 实现了这个功能,并在文档中添加了 onmouseup 处理最后一步。
问题是,我需要在移动设备上实现此功能。我已成功使用 touchstart、touchmove 组合来拖动 div,这很简单。现在我尝试实现上述行为,但发现:
- 现在不存在
touchenter
或touchleave
事件,而且touchmove
事件显然只有在目标已经有了touchstart
事件时才会触发。
很让人沮丧的是,没有无缝的方法来解决这个问题。我明白触摸设备和鼠标不同,但是有些常见的行为应该被视为没有太大区别,只有每个设备特有的东西才需要特别处理。
如果有办法解决这个问题,我会非常感激,因为我已经厌倦了阅读文档和尝试看似可以解决问题但实际上并不能解决问题的方法。
请注意,这个网格既不是静态的,也不是直接用HTML创建的,它是从一个文件中提取出来,并使用不同的程序生成的,它只是一个<table>
。