jquery - 如何向 jQuery 添加禁用右键单击的异常(exception)?

标签 jquery binding return preventdefault right-click

我试图在整个页面中禁用右键单击,但要复制的两个元素除外。我知道禁用右键单击听起来每次都是个坏主意,但在这种情况下对我来说是有意义的。我找到了一些有关如何取消绑定(bind)元素以重新启用使用 PreventDefault(); 阻止的行为的信息。并尝试使用 return: true 来处理异常,但没有成功。没有触发器可以重新启用右键单击功能,应该一次性全部启用。

$(function() {
    $(document).ready(function() {
        $(document).bind('contextmenu', function(e) {
            e.preventDefault();
        });
    });
}); 

我也尝试过这个:

var disablerightclick = function(e) {
    e.preventDefault();      
}
$(document).ready(function() {  
    $(document).bind('contextmenu', disablerightclick);   
});
//]]>

每次都有效。但它不允许我直接在下面解绑任何其他内容,而且这样做是有道理的,我会尝试一些东西并更新它是否有效。

这是我之前提到的更新。这不起作用...

var disablerightclick = function(e) {
    return false;    
}
    $(document).ready(function() {
        $('img').mousedown(function(){return false});
        $('body').bind('contextmenu', disablerightclick);
    });
    $('#AnyObject').hover(function() {
        $('body').unbind('contextmenu', disablerightclick);
    });

我会继续尝试,因为我没有得到任何答案。

最佳答案

刚刚阅读this thread

使用此代码:

$(document).on('contextmenu', function(e) {
    if (!$(e.target).is("#special"))
       return false;

    alert('#special right clicked');
    // you may want e.preventDefault() here
});

关于jquery - 如何向 jQuery 添加禁用右键单击的异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37037367/

相关文章:

php - jQuery Highcharts : change chart type using dropdown list

javascript - jQuery AJAX 调用 Vanilla JS,我错过了什么?

javascript - 带有两个滑动侧面板的布局

javascript - 如何使用 node.js 中的 C++ 库?

php - 创建一个查找函数来获取字符之间的字符串

perl - perl 中的返回列表会导致不同的结果

c# - 返回通用类

Jquery 对话框和带有 IValidatableObject mvc3 的部分 View

javascript - 自定义元素中 "nested"数据更新的 Aurelia 绑定(bind) Hook

wcf - 通过 WCF 发送二进制数据 : binary vs MTOM encoding