Javascript 检查鼠标按钮是否已按下而未侦听事件?
我正在构建一个拖拽小部件,它会监听交互元素中的“mouseup”/“mousedown”事件 大多数情况下工作正常,但我发现“鼠标”有点不可靠。是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下?我可以将其连接到计时器或mousemove事件,使其万无一失 是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下 不,没有。但是对于拖动代码,侦听Javascript 检查鼠标按钮是否已按下而未侦听事件?,javascript,Javascript,我正在构建一个拖拽小部件,它会监听交互元素中的“mouseup”/“mousedown”事件 大多数情况下工作正常,但我发现“鼠标”有点不可靠。是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下?我可以将其连接到计时器或mousemove事件,使其万无一失 是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下 不,没有。但是对于拖动代码,侦听mouseup的最佳方法不是拖动的元素,而是整个文档。如果鼠标释放在窗口之外,您仍然无法获得事件,但是如果鼠标突然移动并释放,以至于在释放发生时它位于
mouseup
的最佳方法不是拖动的元素,而是整个文档。如果鼠标释放在窗口之外,您仍然无法获得事件,但是如果鼠标突然移动并释放,以至于在释放发生时它位于元素之外,您将获得事件
您还可以监听mousemove
,它当然会触发批次,还可以告诉您按钮是否已关闭(通过事件对象上的按钮
属性)
是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下
不,没有。但是对于拖动代码,侦听mouseup
的最佳方法不是拖动的元素,而是整个文档。如果鼠标释放在窗口之外,您仍然无法获得事件,但是如果鼠标突然移动并释放,以至于在释放发生时它位于元素之外,您将获得事件
您还可以监听
mousemove
,它当然会触发一个批次,还可以告诉您按钮是否已关闭(通过事件对象上的按钮
属性).您必须使用事件,但是您可以从事件中使用脚本来分配鼠标按下的状态,以便稍后进行测试
var isMouseDown = false;
document.addEventListener("mousedown", function()
{
isMouseDown = true;
});
document.addEventListener("mouseup", function()
{
isMouseDown = false;
});
if (isMouseDown == true) { ... }
您必须使用事件,但是您可以在事件中使用脚本来分配鼠标按下的状态,以便稍后进行测试
var isMouseDown = false;
document.addEventListener("mousedown", function()
{
isMouseDown = true;
});
document.addEventListener("mouseup", function()
{
isMouseDown = false;
});
if (isMouseDown == true) { ... }
document
比document.body
更好,后者可能不会填充视口。(和.onxyz=…
处理程序不能很好地与其他处理程序配合。)document
比document.body
更好,后者可能无法填充视口。(和.onxyz=…
处理程序与其他处理程序的关系不好。)