我发现了一个非常奇怪的行为,我无法解释.想要做以下事情:
处理程序需要对一个touchstart
或 一个mouseover
事件作出反应,具体取决于输入设备的类型.请注意,我想支持混合设备(鼠标和触摸屏),我不能依赖指针事件.
现在,我只是设置了两个touchstart
和mouseover
事件.在大多数情况下,它的工作正常.还用于preventDefault
禁止触摸事件后触发的模拟"鼠标"事件.但是对我来说完全令人困惑的是,有时会mouseover
发生一个事件,如果我删除了preventDefault,它甚至可能mouseover
会触发而不是 a touchstart
.为什么哦为什么会这样?
此外,Android和iOS都可以重现!虽然它似乎更容易用Android触发(使用Chrome).
我准备了一个小测试盒,所以你可以尝试自己.请注意,只有在红色DIV(具有事件)和背景之间的边界上的某个位置点击时,才会触发此行为.只需点击中心即可100%工作.在发生这种情况之前,您可能需要或多或少的尝试.
任何帮助非常感谢!
Touchtest