Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查鼠标按钮是否已按下而未侦听事件?_Javascript - Fatal编程技术网

Javascript 检查鼠标按钮是否已按下而未侦听事件?

Javascript 检查鼠标按钮是否已按下而未侦听事件?,javascript,Javascript,我正在构建一个拖拽小部件,它会监听交互元素中的“mouseup”/“mousedown”事件 大多数情况下工作正常,但我发现“鼠标”有点不可靠。是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下?我可以将其连接到计时器或mousemove事件,使其万无一失 是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下 不,没有。但是对于拖动代码,侦听mouseup的最佳方法不是拖动的元素,而是整个文档。如果鼠标释放在窗口之外,您仍然无法获得事件,但是如果鼠标突然移动并释放,以至于在释放发生时它位于

我正在构建一个拖拽小部件,它会监听交互元素中的“mouseup”/“mousedown”事件

大多数情况下工作正常,但我发现“鼠标”有点不可靠。是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下?我可以将其连接到计时器或mousemove事件,使其万无一失

是否有一种独立于事件的方式来检查鼠标按钮是否向上/向下

不,没有。但是对于拖动代码,侦听
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=…
处理程序与其他处理程序的关系不好。)