Javascript 如何在jquery中检查鼠标或键盘触发的上下文菜单事件?

Javascript 如何在jquery中检查鼠标或键盘触发的上下文菜单事件?,javascript,jquery,Javascript,Jquery,如何在jquery中找到上下文菜单事件的源,该事件是由鼠标触发还是由上下文菜单键触发 在contextmenu事件参数中,我无法获取任何键相关信息,如何从事件参数中获取此详细信息?该事件有一个按钮属性,该属性应返回用于触发事件的鼠标按钮 因此,window.oncontextmenu=function(e){if(e.button!==2)e.preventDefault();}应该足够了 然而,mac os上似乎存在一个bug,如果您使用ctrl+click调用contextmenu,even

如何在jquery中找到上下文菜单事件的源,该事件是由鼠标触发还是由上下文菜单键触发

在contextmenu事件参数中,我无法获取任何键相关信息,如何从事件参数中获取此详细信息?

该事件有一个
按钮
属性,该属性应返回用于触发事件的鼠标按钮

因此,
window.oncontextmenu=function(e){if(e.button!==2)e.preventDefault();}
应该足够了

然而,mac os上似乎存在一个bug,如果您使用ctrl+click调用contextmenu,
event.button
设置为
2
,但
event.buttons
设置为
1
,因此您可能还需要尝试
window.oncontextmenu=function(e){if(e.buttons!==2)e.preventDefault();}

事件有一个
按钮
属性,该属性应返回用于触发事件的鼠标按钮

因此,
window.oncontextmenu=function(e){if(e.button!==2)e.preventDefault();}
应该足够了


然而,mac os上似乎存在一个bug,如果您使用ctrl+click调用contextmenu,
event.button
设置为
2
,但
event.buttons
设置为
1
,因此您可能还需要尝试
window.oncontextmenu=function(e){if(e.buttons!==2)e.preventDefault();}

您有一些代码可以使用吗?是的,我已经为container元素绑定了上下文菜单事件。如果通过鼠标触发contextmenu,我可以获得容器中的确切目标元素和位置。但是按键我不能这样做。你有一些代码要处理(需要在问题中发布)?我想只按键阻止默认上下文菜单操作,但我需要鼠标执行上下文菜单操作。你有一些代码要处理吗?是的,我为容器元素绑定了上下文菜单事件。如果通过鼠标触发contextmenu,我可以获得容器中的确切目标元素和位置。但是按键我不能这样做。你有一些代码可以使用(需要在问题中发布)?我想只按键阻止默认上下文菜单操作,但我需要鼠标执行contextmenu操作。请注意,我无法在win键盘上测试它,请告诉我它是否有效。请注意,我无法在win键盘上测试它,请告诉我它是否有效。