javascript - 如何仅在 jQuery 中取消绑定(bind)右键单击事件

标签 javascript jquery jquery-events

我正在处理一个包含一些我无法修改的 JS 的页面,这些 JS 被加载到页面上,当一个元素被右键单击时会触发一个函数。所以,我知道如何捕获对页面上元素的右键单击,但是有没有一种方法可以让我专门解除对所有右键单击和仅对元素的右键单击的绑定(bind)?

很明显,如果像 $(selector).unbind('rightclick) 这样的东西能工作,那就太棒了,但它当然没有。 任何帮助将不胜感激。

编辑

一些澄清...我不希望阻止在右键单击元素时出现默认的右键单击浏览器菜单。我只是想删除所有在元素被右键单击时必然会触发的东西。当我针对所有点击执行此操作时,它工作正常并且出现了默认菜单。唯一的问题是我还取消了所有左键单击事件的绑定(bind),这是我试图避免的。

基本上,我试图取消绑定(bind)的这个事件会阻止上下文菜单出现。所以我试图解除绑定(bind),甚至为了展示它。

最佳答案

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>jQuery disable right click easily</title>
    <script language="javascript" type="text/javascript"
      src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
    </script>
    <script type="text/javascript" language="javascript">
        $(function() {
            $(this).bind("contextmenu", function(e) {
                e.preventDefault();
            });
        }); 
    </script>
</head>
<body>
    Sed lacus. Donec lectus. Nullam pretium nibh ut turpis.
    Nam bibendum. In nulla tortor, elementum vel, tempor at,
    varius non, purus. Mauris vitae nisl nec consectetuer.
    Donec ipsum. Proin imperdiet est. Phasellus dapibus semper
    urna. Pellentesque ornare, orci in consectetuer hendrerit,
    urna elit eleifend nunc, ut consectetuer nisl felis ac diam.
    Etiam non felis. Donec ut ante. In id eros.
</body>
</html>

参见 referencedemo .

关于javascript - 如何仅在 jQuery 中取消绑定(bind)右键单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456875/

相关文章:

javascript - li 的点击功能在 jQuery 中不起作用

jquery - 停止事件冒泡 - 提高性能?

javascript - jQuery 中 .push 数组值之间的空格

javascript - Chrome 扩展中的弹出脚本多次发送消息

javascript - 动画和 DOM 重新排序后清除样式属性

javascript - OnClick 事件不适用于超过 10 个条目的值

javascript - 如何检测文本基线的位置

javascript - 更新 ng-repeat Angularjs 下拉列表中所选选项的输入值

javascript - 如何在结果 "A Tag"javascript 中使用类获得点击结果?

javascript - 如何根据选择器更改取消绑定(bind)和重新绑定(bind)事件