JS 判断鼠标按下是否会触发上下文菜单

问题描述 投票:0回答:1

我想处理

mousedown
事件,但不是那些稍后会立即触发
contextmenu
事件的事件。

由于

mousedown
事件在
contextmenu
事件之前调度,我无法在
timeStamp
处理程序中以某种方式“标记”该事件(例如,通过记录其
contextmenu
)。

当然,我可以在

event.ctrlKey
处理程序中检查
mousedown
,但这错过了可以触发上下文菜单的其他一些方式(并且,我假设还有平台特定的详细信息)。那么我如何确定是否会出现
contextmenu

javascript event-handling contextmenu
1个回答
0
投票

你是对的,有不同的方法可以触发

contextmenu
事件,但是你的问题归结为“
mousedown
AND
contextmenu
”。

按下辅助鼠标按钮时,

contextmenu
事件将跟随
mousedown


注意: 如果没有进行其他配置,辅助按钮通常是右侧按钮。左撇子例如更喜欢使用鼠标左键。然而,这在这里并不重要,所以让我们坚持使用与配置无关的术语辅助按钮


现在,您可以在

mousedown
处理程序中检查哪个按钮被按下,查询
MouseEvent.button
。辅助按钮由数字
2
表示。因此,如果
MouseEvent.button == 2
处理程序中存在
mousedown
,则不要执行您想要跳过的内容,以防触发
contextmenu
事件。

© www.soinside.com 2019 - 2024. All rights reserved.