JavaScript:仅在特定元素内捕获右键单击和禁用菜单

我编写了一个jquery脚本,其中屏幕上有一个小网格,使用拖放用户可以在网格上放置切片(按住卡片)。 目前,如果您将鼠标hover在某个磁贴上,它会在旋转选项中淡入淡出,但如果您可以右键单击旋转(使其更自然),我会更喜欢它。 我理解完全阻止右键通常是不满意的,所以想知道是否可能只是在一个特定元素内,然后捕获该事件,在JS中执行某些操作并禁用上下文菜单? – 适用于所有浏览器。

另外,目前我正在使用jQuery进行效果和自定义javascript的拖放,是否值得一看jQuery插件进行拖放?

非常感谢,

要捕获右键单击,您可以使用此jquery:

$('#gridID').bind('contextmenu', function(e) { // do stuff here instead of normal context menu return false; }); 

这适用于chrome,firefox和safari。 没有测试IE 。 也适用于IE。 唯一需要注意的是它在Opera中显然不起作用。 所以,如果你能忍受……

我不喜欢在网页上使用鼠标右键。 但是,如果您真的想这样做,可以按照此处所述捕获鼠标右键。 如果鼠标位于网格单元格上,您可以有条件地阻止鼠标右键(换句话说,在事件处理程序中返回false)。

关于你的奖金问题: jquery ui具有拖放function 。 使用它可能比滚动自己更容易。

“是否值得一看jQuery插件进行拖放?”

只有当您不打算在带有Safari的iPhone OS上使用您的应用程序时,例如包括iPad,请参阅Safari Web内容指南:处理事件