为什么按住鼠标按钮进入元素会干扰进一步的鼠标事件?

Why would entering an element with mouse button held down interfere with further mouse events?

在我的site in progress上,你可以看到底部有一排卡片。如果将鼠标悬停在它们上方,它将显示该卡片的放大版本。较大的版本是可拖动的。

这里有一个奇怪的边缘案例错误,如果您在输入时按住鼠标按钮进入卡片行,然后松开,然后尝试单击并拖动-- 拖动不起作用。

我已经设置了仔细的断点并观察——所有的侦听器都正常触发,除了跟踪光标拖动的 onMouseMove 侦听器 在你从你原来的位置移动大约 2 个像素后停止触发当您开始拖动时。 如果您只是将光标来回移动 1-2 个像素,它就可以工作。但是,一旦您移动的次数超过该次数,onMouseMove 事件就会在该元素上完全停止触发。当您 释放 鼠标时,它会再次启动。好像是用鼠标按下来反转了事件,但它在起点的2px范围内正常工作。

对于这种行为,我想不出任何解释。如果您从开始拖动的位置移动超过 2 个像素,为什么按住鼠标按钮进入会导致 onMouseMove 停止触发?

此外,当尝试拖动失败时,这个陌生的图像会出现在光标旁边,直到您释放按钮:

任何人都可以识别此图标以便我查找吗?

根据 , the solution was to call event.preventDefault() 在所有 (drag-related?) 事件侦听器中。