目标元素边缘的触摸启动会导致鼠标按下
Touchstart on the edge of target element causes mousedown
我注意到一个非常奇怪的行为,也许是一个错误。我有一个带有锚点和分隔符的垂直菜单。定位点具有用于mousedown
、touchstart
、pointerdown
的自定义事件处理程序。问题是,当我点击并且手指同时覆盖锚点和分隔符时(分隔符被覆盖得更多),然后执行mousedown
事件而不是touchstart
。我设法在一个简单的样本中重现了它。
我在Android Chrome和桌面上使用Chrome开发工具触摸仿真对其进行了测试。只需触摸锚点和分隔符之间的区域,您就会看到浏览器注册了mousedown
事件而不是touchstart
事件。有人可以告诉我出了什么问题吗?是错误还是我做错了什么?
这只发生在锚点上,如果有段落而不是锚点,它就不会发生。
下面是示例:http://jsbin.com/huhariluva/edit?js,console,output
Edge 不支持触摸事件。因此,touchstart 什么都不做,并且从不调用 preventDefault,因此会执行鼠标关闭。您可以改用指针事件,并使用 PEP 为 chrome 和其他浏览器填充代码。
指针事件:https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
PEP: https://github.com/jquery/PEP
我设法克服了这个问题。解决方案是将 touchstart 事件侦听器添加到另一个被单击并导致错误的元素并从那里调用 event.preventDefault()。
我还在铬错误跟踪器上提交了错误。
- jQuery悬停在没有鼠标悬停的情况下启动
- 如何在启动mouseup时检测鼠标是否在移动
- 鼠标悬停从元素数组启动随机翻转
- 如何防止Jquery colorbox组在单击或鼠标悬停时启动
- 为什么我的javascript鼠标事件没有启动
- 目标元素边缘的触摸启动会导致鼠标按下
- 启动/停止函数执行 jQuery/JS 在鼠标事件上
- 如果鼠标第一次没有离开文本框,则 Jquery 验证不会启动
- D3.js :仅当指针在同一位置停留最短时间时,才启动鼠标悬停事件
- 在jQuery中启动.hooper后,我如何检查鼠标是否仍在悬停
- 鼠标在全屏+指针锁定状态下按下任何键时都不会启动
- JS/jQuery - 当我再次启动鼠标悬停时重置 MouseLeave
- 事件--'mouseup'鼠标移动后未启动
- 如何在单击3次鼠标后启动操作
- 如何在倒计时后启动鼠标移动动作触发脚本
- 拖动时如何在事件上启动鼠标
- 重新启动音频时,我做另一个鼠标悬停
- 在IE7中无法捕获鼠标启动事件
- 将鼠标悬停在缩略图上以启动新图像;悬停结束后,新图像仍然存在
- 单击鼠标启动动画gif,从第一帧开始