在 mousedown 事件中添加的 Mousemove 事件在鼠标不移动时不断触发
Posted
技术标签:
【中文标题】在 mousedown 事件中添加的 Mousemove 事件在鼠标不移动时不断触发【英文标题】:Mousemove event added in mousedown event keeps firing while the mouse is not moving 【发布时间】:2021-09-19 08:04:21 【问题描述】:我正在以“mousedown”->“mousemove”->“mouseup”的形式处理一系列简单的鼠标事件侦听器。我要做的是在mousedown
事件触发时为mousemove
和mouseup
添加两个事件侦听器。
我的代码如下所示:
document.addEventListener("mousedown",stagesContainerGrabMouseDownHandler)
function stagesContainerGrabMouseDownHandler(ev)
document.addEventListener("mousemove",stagesContainerGrabMouseMoveHandler);
document.addEventListener("mouseup",stagesContainerGrabMouseUpHandler)
function stagesContainerGrabMouseMoveHandler(ev)
console.log(12)
function stagesContainerGrabMouseUpHandler(ev)
document.removeEventListener("mousemove",stagesContainerGrabMouseMoveHandler);
document.removeEventListener("mouseup",stagesContainerGrabMouseUpHandler);
问题是当我按住鼠标时,即使我的鼠标保持不动,mousemove 事件也会继续触发。我正在使用 Chrome。
【问题讨论】:
【参考方案1】:看来问题一定来自其他地方——可能是其他代码或您正在使用的鼠标。
我测试了您在 DevTools 控制台中包含的代码(在 Edge 和 Chrome 中),当我按住鼠标不动时,事件不会触发。
【讨论】:
这是关于在按下鼠标时保持鼠标静止。 我澄清了我的帖子。我在按住鼠标不动的情况下进行了测试。如果我只是按下而不移动,控制台只会记录一次“12”。 奇怪。无论我使用什么浏览器,如果我按住文档上的任意位置,此代码都会导致 12 继续被控制台记录。 是的。即使在这里或 JSFiddle 我也遇到了这个奇怪的问题。【参考方案2】:所以我找到了罪魁祸首。我什至没想到那里看。我正在使用 AutoHotKey 在后台运行脚本,出于某种原因,它似乎与我的页面交互。将其关闭即可解决问题。
【讨论】:
以上是关于在 mousedown 事件中添加的 Mousemove 事件在鼠标不移动时不断触发的主要内容,如果未能解决你的问题,请参考以下文章
在没有 jQuery mobile 的移动设备上使用 mousedown 事件?
为 .NET TextBox 捕获 MouseDown 事件