我注意到一种非常奇怪的行为,也许是一个错误。我有一个带锚和分隔符的垂直菜单。锚有mousedown,touchstart,pointerdown的自定义事件处理程序。问题是,当我点击并且手指覆盖锚点和分隔符时(分隔符被覆盖更多),然后执行mousedown事件而不是touchstart。我设法用一个简单的样本重现它。 我在android chrome和桌面上使用chrome dev工具触摸仿真测试了它。只需触摸锚点和分隔符之间的区域,您就会看到浏览器注册了mousedown事件而不是touchstart事件。有人能告诉我什么是错的吗?这是一个错误还是我做错了什么? 这只发生在锚点上,如果有段落而不是锚点,那就不会发生。
答案 0 :(得分:0)
Edge不支持触摸事件。因此touchstart什么都不做,并且从不调用preventDefault,因此执行mousedown。您可以使用指针事件,并使用PEP对chrome和其他浏览器进行polyfill。
指针事件:https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
答案 1 :(得分:0)
我设法克服了这个问题。解决方案是将touchstart事件侦听器添加到单击的其他元素并导致该bug并从那里调用event.preventDefault()。
我还提交了有关铬虫追踪器的错误。