javascript - 为什么在按住鼠标按钮的情况下输入元素会干扰进一步的鼠标事件?
问题描述
在我的网站上,你可以在底部看到一排卡片。如果您将鼠标悬停在它们上方,它将显示该卡片的更大版本。较大的版本是可拖动的。
有一个奇怪的边缘情况错误,如果您在输入时按住鼠标按钮进入卡片行,然后释放,然后尝试单击并拖动 - 拖动将不起作用。
我已经设置了仔细的断点并观察了——所有的侦听器都正常触发,除了跟踪光标以进行拖动的 onMouseMove 侦听器在您从开始拖动时的位置移动大约 2 个像素后停止触发。如果您只是将光标来回移动 1-2 个像素,它就可以工作。但是,一旦您移动了更多,onMouseMove 事件就会完全停止对该元素的触发。当您释放鼠标时,它会再次开始射击。就好像用鼠标向下输入已经反转了事件,但它在起点的 2px 范围内正常工作。
对于这种行为,我想不出任何解释。如果您从开始拖动的位置移动超过 2 个像素,为什么按住鼠标按钮进入会导致 onMouseMove 停止触发?
此外,当尝试拖动失败时,这个不熟悉的图像会出现在光标旁边,直到您释放按钮:
任何人都可以识别这个图标以便我查找它吗?
解决方案
根据OP 的评论,解决方案是调用event.preventDefault()
所有(与拖动相关的?)事件侦听器。
推荐阅读
- rx-java - 创建的 Observable 的 onNext 不起作用
- java - 405 方法不允许,尽管在使用 RepositoryRestConfiguration.disableDefaultExposure() 时公开了所有方法
- php - Laravel 5.6:Auth::check() 在成功 Auth::login 后直接失败
- regex - 在 python 中,如何将正则表达式匹配类型(sre.SRE_Match)转换为 FLOATS?
- php - 使用数组作为函数参数的最佳实践是什么?
- java - Thymeleaf 中嵌套列表的表单绑定
- azure - 如何在数据工厂 V2 链接服务中连接现有网关
- r - 是否有任何类似的方法来对 Shiny 中的 excel 中的多列进行条件格式化
- javascript - 下拉菜单不适用于移动浏览器
- reactjs - 条件路由 - 异步