【发布时间】:2016-10-10 15:33:03
【问题描述】:
正如标题所说,我注意到在我的画布上mousemove 在按下/释放鼠标按钮时被触发,即使我实际上并没有移动鼠标。问题是,在释放按钮的情况下,它会在 mouseup! 之后被触发!
这是正常行为吗?
如何修复/解决方法?我真的需要我的mouseup 最后触发,或者mousemove 在释放按钮时根本不触发; setTimeout 不是一个合法的解决方案。
示例:https://jsfiddle.net/h40mm4mj/1/ 就这么简单:如果您打开控制台并在画布中单击,您会注意到在mouseup 之后记录了mousemove
canvas.addEventListener("mousemove", function (e) {
console.log("mousemove");
}, false);
canvas.addEventListener("mouseup", function (e) {
console.log("mouseup");
}, false);
编辑:刚刚测试过,它只发生在 Chromium、Windows 上。
【问题讨论】:
-
忘了补充一下,我已经尝试使用所有可能的 useCapture 组合添加事件处理程序,但它们的结果都相同。
-
请出示相关代码,以便我们重现您的问题。
-
刚刚尝试使用 div 元素,但我无法仅按一个按钮触发 mousemove 事件。使用 Firefox 45
-
该死的,这是一大段代码。给我一点时间给你缩小!
-
JSFiddle 上的演示也可以。
标签: javascript dom-events mouseevent mousemove mouseup