我想处理
mousedown
事件,但不是那些稍后会立即触发 contextmenu
事件的事件。
由于
mousedown
事件在 contextmenu
事件之前调度,我无法在 timeStamp
处理程序中以某种方式“标记”该事件(例如,通过记录其 contextmenu
)。
当然,我可以在
event.ctrlKey
处理程序中检查 mousedown
,但这错过了可以触发上下文菜单的其他一些方式(并且,我假设还有平台特定的详细信息)。那么我如何确定是否会出现 contextmenu
?
contextmenu
事件,但是你的问题归结为“mousedown
AND contextmenu
”。
按下辅助鼠标按钮时,
contextmenu
事件将跟随 mousedown
。
注意: 如果没有进行其他配置,辅助按钮通常是右侧按钮。左撇子例如更喜欢使用鼠标左键。然而,这在这里并不重要,所以让我们坚持使用与配置无关的术语辅助按钮。
现在,您可以在
mousedown
处理程序中检查哪个按钮被按下,查询 MouseEvent.button
。辅助按钮由数字 2
表示。因此,如果 MouseEvent.button == 2
处理程序中存在 mousedown
,则不要执行您想要跳过的内容,以防触发 contextmenu
事件。