在 mousedown 事件中添加的 mousemove 事件在鼠标不移动时保持触发
Mousemove event added in mousedown event keeps firing while the mouse is not moving
我正在处理一个简单的鼠标事件侦听器序列,其形式为“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.
看来问题一定出在其他地方 — 可能是其他代码或您使用的鼠标。
我测试了您包含在 DevTools 控制台中的代码(在 Edge 和 Chrome 中),当我按住鼠标不动时事件没有触发。
所以我找到了罪魁祸首。我什至没有想到去那里看看。我是 运行 一个在后台使用 AutoHotKey 的脚本,出于某种原因,它似乎与我的页面交互。关闭它解决了问题。
我正在处理一个简单的鼠标事件侦听器序列,其形式为“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.
看来问题一定出在其他地方 — 可能是其他代码或您使用的鼠标。
我测试了您包含在 DevTools 控制台中的代码(在 Edge 和 Chrome 中),当我按住鼠标不动时事件没有触发。
所以我找到了罪魁祸首。我什至没有想到去那里看看。我是 运行 一个在后台使用 AutoHotKey 的脚本,出于某种原因,它似乎与我的页面交互。关闭它解决了问题。