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

JavaScript:仅在特定元素中捕获右键单击并禁用菜单,javascript,jquery,drag-and-drop,right-click,Javascript,Jquery,Drag And Drop,Right Click,我编写了一个jquery脚本,其中屏幕上有一个小网格,用户可以使用拖放功能在网格上放置平铺(捕捉到位)。当前,如果您将鼠标悬停在一个平铺上,它会在旋转选项中淡出,但如果您可以右键单击旋转(使其更自然),我更喜欢它。我知道完全阻止右键点击通常是不受欢迎的,所以我想知道它是否可能仅仅在一个特定的元素中,然后捕获该事件,在JS中做一些事情并禁用上下文菜单这适用于所有浏览器 另一方面,目前我正在使用jQuery实现特效,使用自定义javascript实现拖放,是否值得一看用于拖放的jQuery插件 非常

我编写了一个jquery脚本,其中屏幕上有一个小网格,用户可以使用拖放功能在网格上放置平铺(捕捉到位)。当前,如果您将鼠标悬停在一个平铺上,它会在旋转选项中淡出,但如果您可以右键单击旋转(使其更自然),我更喜欢它。我知道完全阻止右键点击通常是不受欢迎的,所以我想知道它是否可能仅仅在一个特定的元素中,然后捕获该事件,在JS中做一些事情并禁用上下文菜单这适用于所有浏览器

另一方面,目前我正在使用jQuery实现特效,使用自定义javascript实现拖放,是否值得一看用于拖放的jQuery插件


非常感谢,

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

关于您的奖金问题:。使用它可能比自己滚动更容易

“值得一看用于拖放的jQuery插件吗?”


只有当您不打算在iPhone O.S和safari上使用您的应用程序,即包括iPad时,请参见

获取右键点击,您可以使用以下jquery:

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

这适用于chrome、firefox和safari。没有测试过IE。也在IE中工作。唯一需要注意的是,它显然在歌剧中不起作用。如果你能接受的话…

非常感谢,按照你的建议,我查看了“Dragable”,发现这似乎是我需要的绘图内容。答案无效,右键单击会触发contextmenu,而不是右键单击。对有效的答案投反对票有点苛刻和吹毛求疵。也许措辞令人困惑,但即使是Mozilla文档也说“右键单击”()。不管怎样,代码只是简单地捕获浏览器的“contextmenu”事件并阻止它显示菜单。